ASP.NET MVC发布至IIS遇Web部署失败错误求助
问题复现
第二次发布ASP.NET MVC网站至IIS时触发Web Deploy错误:
Severity Code Description Project File Line Suppression State Error: Web deployment task failed. (The SQL provider cannot run because of a missing dependency. Please make sure that Microsoft SQL Server Management Objects (Version 10 or higher) is installed.)
本地运行正常,此前发布无异常,常规解决方案无效。
针对性解决方案
检查并修复本地发布环境的SMO组件
卸载现有Microsoft SQL Server Management Objects(SMO),重新安装与本地SQL Server版本匹配的SMO(版本需≥10.0)。安装后验证C:\Program Files\Microsoft SQL Server\[对应版本号]\SDK\Assemblies目录下存在Microsoft.SqlServer.Smo.dll等核心文件。
若存在多版本SQL Server冲突,清理旧版本SQL组件,仅保留与项目适配的版本,可通过gacutil /l Microsoft.SqlServer.Smo查看全局程序集缓存中的SMO版本。排查发布配置的SQL部署选项
打开项目发布配置的「设置」标签,检查「数据库」区域是否新增了「更新数据库」「部署数据库」等选项。若此前未启用该配置,且本次发布无需同步数据库,直接取消勾选该选项,跳过SQL部署环节。修复Web Deploy组件
卸载本地及目标IIS服务器上的Web Deploy,重新安装最新版本,安装时确保勾选「SQL Server支持」相关组件。若采用远程Web Deploy发布,需同步检查服务器端的Web Deploy及SMO组件完整性。检查服务器端SMO依赖
若为远程直接发布至IIS服务器,登录服务器安装对应版本的SMO组件;若为本地打包后复制到服务器,则无需在服务器端安装SMO,重点排查本地发布环境即可。
关键排查点
重点回溯最近本地环境的变更:如SQL Server版本更新、Web Deploy升级、发布配置修改等,这些是导致此前正常的发布流程突然报错的核心诱因。
内容的提问来源于stack exchange,提问作者Zha

