Web 部署任务失败。无法连接...服务器没有响应

Posted

技术标签:

【中文标题】Web 部署任务失败。无法连接...服务器没有响应【英文标题】:Web deployment task failed. Could not connect...server did not respond 【发布时间】:2012-08-03 13:35:51 【问题描述】:

我一直使用 Visual Studio 2012 RC 将我的 Lightswitch 应用程序发布到我的本地主机(Win 7、SQL 2008 R2、IIS 7.5)就好了。现在我正在尝试发布到远程服务器(Win 2008 R2、SQL 2008 R2、IIS 7.5),但遇到了问题。

当我尝试发布时,我收到以下错误:

Web 部署任务失败。 (无法连接到远程计算机 ("###.###.###.###") 使用指定进程 ("Web Deployment Agent 服务”),因为服务器没有响应。请确保 进程(“Web 部署代理服务”)在远程启动 计算机。了解更多信息: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_COULD_NOT_CONNECT_TO_REMOTESVC.)

我已经检查了“了解更多”链接建议检查的每一项内容。我已经验证 MsDepSvc 和 WMSVC 都在运行,并且端口 80 和 8172 都在响应端口扫描。在发布设置中,对于服务 URL,我使用远程计算机的 IP 地址 (http://###.###.###.###)。对于用户名,我使用的是 DomainName\Administrator,这是我使用 RDP 登录时使用的名称。

我已在MSDN Forums 上发帖,一位成员建议我将 Web 部署工具从 V2.0 回滚到 V1.1。我已经完成了,但它没有改变任何东西。

按照SO Question 的答案中的建议,我尝试从命令行运行msdeploy

服务器上的命令行我得到:

C:\Program Files\IIS\Microsoft Web 部署>msdeploy -verb:dump -source:dirpath=c:\temp,计算机名=http://SeverName:80/msdeployagentservice,username=Administrator,password=XXXX -verbose -debug 详细:使用 ID 'c12c3392-2290-44b7-9434-dbd0ff5f9385' 连接到远程 服务器。详细:对远程代理 URL 进行预身份验证 'http://ServerName:80/msdeployagentservice' 作为'管理员'。 MSDeploy.dirPath (name=MSDeploy.dirPath) c:\temp (name=dirPath) (keyAttribute=c:\temp) (linkName=Child1)

dev 机器上的命令行我得到:

C:\Program Files\IIS\Microsoft Web Deploy V3>msdeploy -verb:dump -来源:目录路径 =c:\temp,computername=http://###.###.###.###:80/msdeployagentservice,username=Administrator,password=XXXX -verbose -debug 信息:使用 ID '7f0b7d5b-e202-424c-a7dd-246920253081' 连接到远程服务器。详细:预验证 远程代理 URL 'http://###.###.###.###:80/msdeployagentservice' 为 '行政人员'。详细:对远程代理 URL 进行预身份验证 'http://###.###.###.###:80/msdeployagentservice' 作为'管理员'。 错误代码:ERROR_COULD_NOT_CONNECT_TO_REMOTESVC 更多信息: 无法使用 指定进程(“Web 部署代理服务”),因为服务器 没有回应。确保进程(“Web 部署代理 服务”)在远程计算机上启动。了解更多信息: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_COULD_NOT_CONNECT_TO_REMOTESVC。 了解更多信息: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_COULD_NOT_CONNECT_TO_REMOTESVC。 ---> Microsoft.Web.Deployment.DeploymentException:无法创建“dirPath”类型和路径“c:\temp”的对象。 ---> System.Net.WebException:远程服务器返回错误:(400) 错误的请求。在 System.Net.HttpWebRequest.GetResponse() 在 Microsoft.Web.Deployment.AgentClientProvider.GetHttpResponse(HttpWebRequest 请求)---内部异常堆栈跟踪结束------结束 内部异常堆栈跟踪 --- 在 Microsoft.Web.Deployment.DeploymentManager.CreateObjectPrivate(DeploymentProviderContext providerContext、DeploymentBaseOptions baseOptions、DeploymentObject 源对象,字符串服务器版本)在 Microsoft.Web.Deployment.DeploymentManager.CreateObject(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions) 在 MSDeploy.MSDeploy.CreateObject(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions) 在 MSDeploy.MSDeploy.ExecuteWorker() 在 MSDeploy.MSDeploy.Execute() 在 MSDeploy.MSDeploy.Main(String[] usedArgs) 错误计数:1。

使用 Wireshark,我发现我可以正常登录,但在 POST /MSDEPLOYAGENTSERVICE 之后我收到错误 400:错误请求,如下所示:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">\r\n
<HTML><HEAD><TITLE>Bad Request</TITLE>\r\n
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>\r\n
<BODY><h2>Bad Request - Invalid Content Length</h2>\r\n
<hr><p>HTTP Error 400. There is an invalid content length or chunk length in the request.</p>\r\n
</BODY></HTML>\r\n

我能找到的唯一提到此特定行为的是 ISA Server 2000 的 Microsoft Support Article。

我还应该看什么?

【问题讨论】:

对此有什么解决办法吗?我遇到了同样的问题。 @rybl 我们最终切换到 Windows Azure 作为托管服务提供商。价格相当,部署功能集成得更紧密。整个体验更加顺畅。我能够在 2 天内部署我们的应用程序,这是我在 2 周多的 IIS 部署中无法完成的事情。我对这个开关很满意。 我在这里回答了类似的问题:***.com/questions/18856597/… 我在本地 2012 R2 服务器上遇到了同样的问题。从字面上看,下面或其他任何地方的答案都不起作用。没有防火墙,所有服务都已启动并配置为远程连接,站点名称正确等等。我不知道我还能做什么。 我只需要启动 Web 部署代理服务。由于某种原因,它没有自动启动。 【参考方案1】:

如果您已经安装了 web deploy,只需检查其相关服务是否正在运行

如果其中一个被停止,你会得到这样的错误

【讨论】:

【参考方案2】:

我在发布一组选择性文件时遇到了同样的问题。我只是选择了所有要发布的文件,然后发布成功。

【讨论】:

以上是关于Web 部署任务失败。无法连接...服务器没有响应的主要内容,如果未能解决你的问题,请参考以下文章

Web 部署任务失败。已超出此站点的最大连接数。天蓝色

Web 部署任务失败(此访问控制列表不是规范形式,因此无法修改)

TFS 构建错误:Web 部署任务失败。包文件没有 .zip 文件扩展名

Web 部署任务失败。(此服务器环境不支持创建新应用程序)

怎样用JAVA实现模拟HTTP请求,得到服务器的响应时间等参数

Azure YAML 部署失败并显示“错误:无法将 Web 包部署到应用服务。冲突(代码:409)”