尽管已启动Web部署服务,但msdeploy无法到达目标

时间:2013-05-15 09:00:54

标签: msbuild msdeploy webdeploy msbuild-wpp

从标题中可以看出,我在部署到远程IIS时遇到了一些问题。 以下是我到目前为止所做的事情:

  • 我已在Windows Server 2008上设置了运行IIS7的虚拟机。
  • 我已经桥接了VM网络适配器。
  • 我已经安装并启动了“Web部署代理服务”以及“Web管理服务”。

"Web Deployment Agent Service" and "Web Management Service" started and running

  • 我还创建了一个新的IIS管理员用户,并授予他访问相关网站的权限。

both local Administrator and iisman have access to the site I want to deploy to

现在部署本身就像我这样做了,例如:

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(也称为here) 所以我从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 Deploy,并且Web管理服务正在运行。 我还试图从我的主机上ping我的VM,它正在通过。 出于测试目的,我也完全关闭了我的VM中的防火墙。

All firewall profiles are switched off

但我仍然收到相同的错误消息。

有人能引导我走向正确的方向吗?我错过了什么?

1 个答案:

答案 0 :(得分:1)

事实证明,我在这里遇到的问题与我的远程机器上的服务器配置,服务帐户或任何其他帐户配置无关。

服务可以正常运作。

似乎我要么以错误的方式设置我的脚本,要么它无法正常工作。 当我查看脚本的执行时,我看到最后创建了这个命令并尝试执行:

"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

然后完成了部署到我的远程计算机的实际工作。 我还更详细地发布了这个here,因为我的问题现在从服务器配置问题变为脚本配置问题;)