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

89
我一直在使用Visual Studio 2012 RC将我的Lightswitch应用程序发布到本地主机(Win 7,SQL 2008 R2,IIS 7.5),一切都很顺利。现在我正在尝试发布到远程服务器(Win 2008 R2,SQL 2008 R2,IIS 7.5),但遇到了问题。
当我尝试发布时,我收到以下错误:
Web部署任务失败。(由于服务器没有响应,无法使用指定的进程(“Web部署代理服务”)连接到远程计算机(“###.###.###.###”)。请确保在远程计算机上启动进程(“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论坛上发布了帖子,其中一位成员建议我将Web部署工具从V2.0回滚到V1.1。虽然我已经这样做了,但并没有改变任何事情。
按照SO问题答案中的建议,我尝试从命令行运行msdeploy

从服务器的命令行中,我得到了以下内容:

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

从开发机器的命令行中,我得到了以下内容:

"C:\Program Files\IIS\Microsoft Web Deploy V3>msdeploy -verb:dump -source:dirpath =c:\temp,computername=http://###.###.###.###:80/msdeployagentservice,username=Administrator,password=XXXX -verbose -debug Info: 使用ID“7f0b7d5b-e202-424c-a7dd-246920253081”进行远程服务器连接。详细信息:预身份验证到远程代理URL 'http://###.###.###.###:80/msdeployagentservice',用户名为 'Administrator'。详细信息:预身份验证到远程代理URL 'http://###.###.###.###:80/msdeployagentservice',用户名为 'Administrator'。错误代码:ERROR_COULD_NOT_CONNECT_TO_REMOTESVC 更多信息:使用指定的进程(“Web Deployment Agent Service”)无法连接到远程计算机(“###.###.###.###”),因为服务器未响应。请确保远程计算机上已启动进程(“Web Deployment Agent Service”)。了解更多信息,请访问: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 request) --- 内部异常堆栈跟踪的结尾 --- --- 内部异常堆栈跟踪的结尾 --- 在 Microsoft.Web.Deployment.DeploymentManager.CreateObjectPrivate(DeploymentProviderContext providerContext, DeploymentBaseOptions baseOptions, DeploymentObject sourceObject, String serverVersion) 在 Microsoft.Web.Deployment.DeploymentManager.CreateObject(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions) 在 MSDeploy.MSDeploy.CreateObject(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions) 在 MSDeploy.MSDeploy.ExecuteWorker() 在 MSDeploy.MSDeploy.Execute() 错误数:1。"
使用Wireshark,我发现我成功登录后,在POST /MSDEPLOYAGENTSERVICE之后,我收到了一个错误400:Bad request,如下所示:
<!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

我还应该看什么?


3
有解决方法吗?我也遇到了同样的问题。 - rybl
@rybl 我们最终选择了Windows Azure作为托管提供商。价格相当,部署功能更加紧密集成。整个体验更加顺畅。我能够在2天内部署我们的应用程序,而这是我在苦苦挣扎的IIS部署中无法完成的事情。我对这次转换非常满意。 - embedded.kyle
我在这里回答了一个类似的问题:https://dev59.com/jmMk5IYBdhLWcg3w6yDh#25537442 - André Snede
我在使用本地的2012 R2服务器时遇到了同样的问题。下面以及其他任何地方的答案都没有起作用。没有防火墙,所有服务都已启动并配置为远程连接,站点名称正确等等。我不知道还能做什么。 - Nathan McKaskle
我只是不得不启动Web部署代理服务。由于某种原因,它没有自动启动。 - Evgeny Danilenko
可能问题出在IIS管理服务的IP地址限制配置上:https://dev59.com/O2Ml5IYBdhLWcg3wDjOg#60566397 - Rafael Neto
33个回答

0
显然对我有效的方法就是重新启动我的Visual Studio/重新启动我的电脑,并通过重新发布我的Web应用程序进行重新部署。

0
请确保在IIS中存在一个具有您在“站点名称”字段下提供的名称的网站。

0

我在尝试将网站发布到Azure应用服务时遇到了同样的问题。
在我的情况下,我为一个新网站创建了虚拟路径,由于某种与主题无关的原因,我从应用服务中删除了该虚拟路径。
然后我又重新创建了它,但是忘记在Azure门户中按保存按钮。
结果就是出现了错误,
当然,这个问题可以通过再次创建此虚拟路径并记得保存来解决。

为了更清楚地说明,最后一个虚拟路径不存在:
enter image description here


0

我也通过卸载所有 Web Deploys,然后仅安装 Web Deploy 2.0,使其工作。


0
我已经解决了这个问题,方法是在使用Visual Studio 2013向导发布时,在站点名称文本框中输入“Default Web Site”。

0

另外,请确保已启动远程过程调用(RPC)定位器服务。


0

我在 Visual Studio 的 连接窗口 中设置了用于 iis 的配置 Web Deploy的用户名和密码,对我来说它很好用...


0

0

0
我尝试了大部分提出的答案,但都没有解决问题。然而这是我的解决方案:
1- 如果有FTP连接,请关闭它们
2- 使用更快的连接,使用慢速wifi会导致此问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接