为什么我不能使用 Web Deploy 3.5 进行部署?

为什么我不能使用 Web Deploy 3.5 进行部署?

我尝试在测试环境中使用 Web Deploy 3.5。尽管测试服务器上安装了 Web Deploy 3.5 并且启动了 Web 管理服务,但仍然失败并显示 404。

我甚至在本地(在测试服务器上)的命令行上尝试过:


"c:\Program Files (x86)\IIS\Microsoft Web Deploy V3"\msdeploy -verb:sync -source:contentPath="E:\Downloads\Deployments\DefaultSite_All_MSDeploy.zip" -dest:contentPath='DefaultSite/mySiteName',ComputerName="https://localhost:8172/msdeploy.axd?site=PhaseI",UserName='americas\r.compton',Password='notmypassword',AuthType='Basic' -enableRule:doNotDeleteRule -allowUntrusted -verbose 

命令行上返回的错误详细:对远程代理 URL 进行预先身份验证'https://servername.com:8172/msdeploy.axd?site=mySiteName'as 'americas\r.compton'。错误代码:ERROR_DESTINATION_NOT_REACHABLE 更多信息:无法连接到远程计算机(“servername.com”)。在远程计算机上,确保已安装 Web Deploy 并且已启动所需进程(“Web 管理服务”)。了解更多信息:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_NOT_REACHABLE 错误:远程服务器返回错误:(404)未找到。


IIS 日志:

#软件:Microsoft Internet Information Services 7.5
#版本:1.0
#日期:2013-12-12 18:18:41 #
字段:日期时间 s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken2013-12-12 18:18:41 138.57.1​​60.65 POST /msdeploy.axd site=mySiteName 8172 - 145.30.91.141 - 404 7 0 145
#软件:Microsoft Internet Information Services 7.5 #版本:1.0
#日期:2013-12-12 21:08:23
#字段:日期时间 s-ip cs 方法 cs-uri 主干 cs-uri 查询 s 端口 cs-用户名 c-ip cs(用户代理) sc 状态 sc-子状态 sc-win32 状态 花费时间 2013-12-12 21:08:23 fe80::7157:1fcd:691b:93f%10 HEAD /msdeploy.axd 站点=PhaseI 8172 - fe80::7157:1fcd:691b:93f%10 - 404 7 0 0 2013-12-12 21:09:32 fe80::7157:1fcd:691b:93f%10 HEAD /msdeploy.axd 站点=PhaseI 8172 - fe80::7157:1fcd:691b:93f%10 - 404 7 0 0

我认为 httpHandler、msdeploy.axd 未正确安装或配置。我是否应该期望在 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config 中的 httpHandler 中看到它?

答案1

遗憾的是,当您的解决方案包含一个 ASP.NET MVC 应用程序和两个 ASP.NET Web 服务时,Web 部署无法正常工作。我解决这个问题的唯一方法是更改​​我的构建过程模板以调用远程 PowerShell 脚本来为我部署。

我应该补充一下,我考虑过但未实施的一个“作弊”是在 Dev 应用服务器上安装 TFS Build 服务,并仅为部署标记它。我认为这个解决方案有点不优雅。

答案2

我以前没有使用过 msDeploy 处理程序(我们广泛使用代理),但您可以尝试在 IIS 中启用失败请求跟踪来确定问题所在。它很容易打开,并且会为您提供有关请求的更多信息以及它返回 404 的原因,而 IIS 日志不会告诉您这些信息。

您对处理程序未正确安装/配置的怀疑似乎是正确的,并且失败的请求跟踪将向您显示有关处理程序出现问题的更多信息。

https://www.thebestcsharpprogrammerintheworld.com/2012/01/21/enable-and-activate-failed-request-tracing-rules/

相关内容