适用于: Internet 信息服务
本文介绍如何诊断和修复 Web 部署的常见问题,包括从 Visual Studio 2010 发布时看到的常见错误。
日志记录
遇到与 Web 部署相关的问题时,有几个日志记录选项,具体取决于问题发生的位置。 默认情况下,“Web 部署”会将日志记录到 “应用程序>”“Microsoft Web 部署”下的“事件日志”。 这是开始在目标服务器上查找错误的好地方。
如果无法使用事件日志诊断问题,下面是一些其他选项:
- 使用 % programfiles%\IIS\Microsoft Web Deploy v3 下的 Web 部署 MSI 日志来诊断安装问题。
- 如果 Web 管理服务或远程代理服务无法启动,请参阅错误详细信息,方法是转到 事件查看器 (适用于服务控制管理器的本地) >Windows 日志>系统。
- 可以进一步 配置 Web 管理服务的跟踪。
错误代码
对于某些常见错误情况,Web 部署会显示一条消息和错误代码,这些消息和错误代码可能有助于获取详细信息来排查问题。 有关错误代码的完整列表,请参阅 Web 部署错误代码。
注意
错误消息可能有所不同,具体取决于 Web 部署的调用方式。 例如,Microsoft WebMatrix 选择显示自定义错误消息而不是错误代码,而命令行将始终显示错误代码(如果它们已记录)。
安装问题
1. 无法在有效的 OS 上安装 Web 部署
症状 |
操作系统 (操作系统) 正确,并且 Web 部署的版本和位数正确,但安装不会成功。 |
根源 |
未知 |
修复/解决方法 |
查看位于 %programfiles%\IIS\Microsoft Web Deploy V3 中的安装日志。 |
2. Web 部署在升级后不起作用
症状 |
版本升级后,Web 部署不起作用。 |
根源 |
Web 部署在升级后不会重启服务。 |
修复/解决方法 |
如果要升级 Web 部署的现有安装,请确保通过在管理命令提示符处运行以下命令来重启处理程序和代理服务: net stop msdepsvc
net start msdepsvc
net stop wmsvc
net start wmsvc |
3.无法在 64 位硬件上安装 Web 部署 32 位版本
症状 |
|
根源 |
尝试在 64 位 OS 上安装 32 位是 Web 部署 MSI 中的检查,因为它不支持 WoW64 模式而失败。 |
修复/解决方法 |
安装与 OS 体系结构匹配的相同版本。 |
4.无法在 32 位硬件上安装 Web 部署 64 位版本
症状 |
|
根源 |
尝试在 32 位 OS 上安装 64 位是在 Web 部署的 MSI 中失败的检查。 |
修复/解决方法 |
安装与 OS 体系结构匹配的相同版本。 |
5.由于预先存在的命名空间,无法注册 URL 命名空间
症状 |
无法安装 Web 部署。 |
根源 |
Web 部署在安装期间尝试创建的 URL 命名空间已注册。 |
修复/解决方法 |
- 删除有冲突的注册。 - 在安装过程中更改 Web 部署 URL
msiexec /i wdeploy.msi /passive ADDLOCAL=ALL LISTENURL=http://+:8080/MSDEPLOY2/ . 有关 URL 自定义的详细信息,请参阅 自定义和保护远程服务。 |
远程代理服务问题
1. 在启动时无法初始化 Microsoft.Web.Deployment.Dll
症状 |
远程代理服务无法启动。 |
根源 |
%programfiles%\IIS\Microsoft Web Deploy v3 中缺少 msdepsvc.exe 或其他文件。 |
修复/解决方法 |
重新安装产品。 |
2.远程代理服务未启动
症状 |
Microsoft.Web.Deployment.DeploymentAgentUnavailableException:无法联系到远程代理 (URL http://DestinationServer/msdeployagentservice ) 。 确保在目标计算机上安装并启动远程代理服务。 >--- System.Net.WebException:远程服务器返回错误: (404) 找不到。 |
根源 |
远程代理服务未启动。 |
修复/解决方法 |
启动服务: net start msdepsvc 。 |
3. 尝试连接到不侦听或不允许 HTTP 的服务器
症状 |
Microsoft.Web.Deployment.DeploymentAgentUnavailableException:无法联系到远程代理 (URL http://DestinationServer/msdeployagentservice ) 。 确保在目标计算机上安装并启动远程代理服务。 >--- System.Net.WebException:无法连接到远程服务器---> System.Net.Sockets.SocketException:无法建立连接,因为目标计算机主动拒绝了 DestinationServer:80 |
根源 |
HTTP 未侦听。 |
修复/解决方法 |
确保允许 HTTP 流量发到远程代理服务。 |
4.尝试连接到服务器时出现“不允许的方法”错误
症状 |
Microsoft.Web.Deployment.DeploymentException:无法完成对远程代理 URL“”http://DestinationServer/ 的请求。 >--- System.Net.WebException:远程服务器返回错误: (405) 方法不允许。 |
根源 |
请求由 Internet Information Services (IIS) 本身而不是 MS 部署选取,因为 缺少指向msdepsvc.exe 的路径。 |
修复/解决方法 |
将 URL 更改为包含 /MSDeployAgentService 。 |
5.尝试以非管理员身份访问远程代理服务
症状 |
Microsoft.Web.Deployment.DeploymentException:无法完成对远程代理 URL“”http://DestinationServer/msdeployAgentService 的请求。 >---;System.Net.WebException:远程服务器返回错误: (401) 未授权。 |
根源 |
远程代理服务要求调用方是 Administrators 组的成员,或者来自已添加到 Administrators 组的域帐户。 由于 Web 部署 2.0 中的 bug,不是内置帐户的本地管理员将无法使用远程代理服务。 |
修复/解决方法 |
提供管理凭据。 |
6. 远程代理服务在操作过程中挂起
症状 |
服务可能会长时间停止响应,长达数小时。 |
根源 |
未知。 |
修复/解决方法 |
停止操作并尝试重复操作。 |
7. 客户端和服务器不兼容 (版本不匹配)
症状 |
Timestamp=24638007621418 MsDepSvc.exe 错误: 0 :发生错误。 异常详细信息如下:Microsoft.Web.Deployment.DeploymentClientServerException:客户端和服务器不兼容。 客户端支持的最低版本是“7.1.538.0”。 服务器支持的最高版本是“7.1.537.0”。 |
根源 |
某些版本无法协同工作,因此 Web 部署会阻止它们协同工作。 通常这样做是为了阻止预发布版本使用已发布版本进行操作。 |
修复/解决方法 |
匹配版本。 |
8.远程代理服务无法开始侦听 URL
症状 |
远程代理服务无法开始侦听 URL“”。{0} 确保 URL 未使用。 |
根源 |
通常表示 URL 冲突。 |
修复/解决方法 |
如果需要默认 URL 或设置文档中指定的自定义 URL,请尝试重新安装。 有关 URL 自定义的详细信息,请参阅 自定义和保护远程服务。 |
Web 管理服务问题
1. Web 管理服务未启动
症状 |
Web 管理服务未启动。 |
根源 |
未知。 默认情况下,服务应启动。 |
修复/解决方法 |
启动 Web 管理服务服务: Net Start WMSVC 。 |
2.未授权:用户未通过部署处理程序规则授权
症状 |
使用 Web 管理服务进行连接时,无法使用指定的提供程序 <ProviderName> 完成操作。 如果服务器管理员未授权用户执行此操作,则可能会发生这种情况。 |
根源 |
非管理员用户尝试使用提供程序执行受限操作。 此操作通常指示找不到匹配的委派规则。 用户名、提供程序、操作或提供程序路径错误。 |
修复/解决方法 |
解决方法是修复委托规则或创建一个委托规则。 有关委派规则的详细信息,请参阅 配置 Web 部署处理程序。 |
从 Visual Studio 发布时出错
有关排查尝试从 Visual Studio 发布到未通过 Web 部署正确配置的服务器时可能会遇到的常见错误的详细信息,请参阅 使用 Visual Studio 排查 Web 部署问题。