我一直使用 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 Question的答案中的建议,我尝试msdeploy
从命令行运行。
从服务器上的命令行我得到:
C:\Program Files\IIS\Microsoft Web 部署>msdeploy -verb:dump -source:dirpath=c:\temp,computername= 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)
从开发机器上的命令行我得到:
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 信息:使用 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 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。
在 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
我能找到的唯一提到此特定行为的是Microsoft 支持ISA Server 2000 的文章。
我还应该看什么?