提问人:DrCopyPaste 提问时间:5/15/2013 最后编辑:quetzalcoatlDrCopyPaste 更新时间:3/1/2014 访问量:3869
尽管启动了 Web 部署服务,MSDiploy 仍无法访问目标
msdeploy cannot reach destination despite having web deployment service started
问:
从标题中可以看出,我在部署到远程 IIS 时遇到了一些麻烦。 以下是我到目前为止所做的:
- 我已经在 Windows Server 2008 上设置了一个运行 IIS7 的虚拟机。
- 我已经桥接了 VM 网络适配器。
- 我已经安装并启动了“Web 部署代理服务”和“Web 管理服务”。
- 我还创建了一个新的 IIS 管理器用户,并授予他访问相关网站的权限。
现在,当我像这样进行部署时,它可以正常工作,例如:
msbuild D:\Path\ToProject\DeployVariation01\DeployVariation01.csproj
/p:Configuration=Debug;
Platform=AnyCpu;
DeployOnBuild=true;
DeployTarget=MSDeployPublish;
MSDeployServiceURL="Some.IP.-.Address";
DeployIisAppPath="DeployAppDebug/DeployThis";
MSDeployPublishMethod=WMSVC;
AllowUntrustedCertificate=true;
Username=Administrator;
password=<thinkOfAPassword>
然后部署应用程序,我可以从浏览器调用它。
更新:它也适用于此命令,因此应该回答 James Woolfenden 的问题,即我是否有权访问 msdeploy webservice:
msbuild D:\Path\ToProject\DeployVariation01\DeployVariation01.csproj
/p:Configuration=Debug;
Platform=AnyCpu;
DeployOnBuild=true;
DeployTarget=MSDeployPublish;
MSDeployServiceURL="https://some.ip.-.address:8172/MsDeploy.axd;
DeployIisAppPath="DeployAppDebug/DeployThis";
MSDeployPublishMethod=WMSVC;
AllowUntrustedCertificate=true;
Username=Administrator;
password=<thinkOfAPassword>
但是,我想使用 PackageWeb-Approach(也在此处描述)。
因此,我从 Visual Studio 2012 创建了一个 WebDeploy-Package,我想部署它。
部署它通常似乎也没有问题,因为我让它在我的本地计算机上运行。
我的本地 IIS 和 VM 中的 IIS 都具有相同的 WebSite-Structure,因此在调用 Publish-Interactive.ps1-script 时,我只需要更改“计算机名称”、“用户名”和“密码”即可使其正常工作,但是当我这样做时,我不断收到错误消息
Could not connect to the remote computer ("Some.IP.-.Address")
On the remote computer, make sure that Web Deploy is installed and that the required process ("Web Management Service") is started. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_NOT_REACHABLE.)
但这让我感到困惑,因为我实际上通过 WebPlatformInstaller 安装了 Web 部署,并且 Web 管理服务正在运行。 我还尝试从我的主机 ping 我的 VM,它正在通过。 出于测试目的,我也完全关闭了 VM 中的防火墙。
但我仍然收到相同的错误消息。
谁能引导我走向正确的方向?我错过了什么?
答:
事实证明,我在这里遇到的问题与我的服务器配置、服务帐户或远程计算机上的任何其他帐户配置无关。
服务确实按应有的方式工作。
似乎我要么以错误的方式设置了我的脚本,要么它无法正常工作。 当我查看脚本的执行时,我看到最后创建了此命令并尝试执行:
"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe"
-verb:sync -source:archiveDir="C:\Users\someName\AppData\Local\Temp\DeployDBVariantion00_zip"
-dest:auto,includeAcls='False',ComputerName='some.ip-.address?site=DeployApp/DeployThis',Username=someOtherName,Password=haveAnotherGuess,AuthType='BASIC'
-disableLink:AppPoolExtension
-disableLink:ContentExtension
-disableLink:CertificateExtension
-setParamFile:"C:\Users\someName\AppData\Local\Temp\DeployDBVariantion00_zip\SetParameters.xml"
-skip:objectName=dirPath,absolutePath="_Deploy_"
-skip:objectName=filePath,absolutePath=web\..*\.config
-skip:objectName=dirPath,absolutePath=_Package
-skip:objectName=filePath,absolutePath=.*\.wpp\.targets$
-allowUntrusted
但是要使此命令正常工作,ComputerName-Parameter 需要包含目标服务的完整地址,并且不得包含 IIS 站点下的应用程序名称,因此请将其修改为此处
"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe"
-verb:sync
-source:archiveDir="C:\Users\someName\AppData\Local\Temp\DeployDBVariantion00_zip"
-dest:auto,includeAcls='False',ComputerName='https://some.ip.-.address:8172/msdeploy.axd?site=DeployApp',Username=someOtherName,Password=haveAnotherGuess,AuthType='BASIC'
-disableLink:AppPoolExtension
-disableLink:ContentExtension
-disableLink:CertificateExtension
-setParamFile:"C:\Users\someName\AppData\Local\Temp\DeployDBVariantion00_zip\SetParameters.xml"
-skip:objectName=dirPath,absolutePath="_Deploy_"
-skip:objectName=filePath,absolutePath=web\..*\.config
-skip:objectName=dirPath,absolutePath=_Package
-skip:objectName=filePath,absolutePath=.*\.wpp\.targets$
-allowUntrusted
然后完成了部署到我的远程计算机的实际工作。 我还在这里更详细地发布了这个问题,因为我的问题现在从服务器配置问题变成了脚本配置问题;)
评论