msdeploy cannot reach destination despite having web deployment service started

不想你离开。 提交于 2019-12-13 16:22:54

问题


as you can see from the title I am experiencing some trouble deploying to a remote IIS. Here is what I have done so far:

  • I have set up a virtual machine running an IIS7 on Windows Server 2008.
  • I have bridged the VMs network adapter.
  • I have installed and started the "Web Deployment Agent Service" as well as the "Web Management Service".

  • I also created a new IIS manager user and granted him access to the website in question.

Now deploying itself works when I do it like this for example:

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>

Then the application is deployed and I can call it from my browser.

UPDATE: It also works with this command, so that should answer James Woolfenden's question of whether I have access to the 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>

But, I want to use the PackageWeb-Approach (also described here).
So I create a WebDeploy-Package from Visual Studio 2012, which I want to deploy. Deploying this generally seems to be no problem, too, since I get it to run on my local computer.

Both, my local IIS as well as the one in my VM have the same WebSite-Structure, so I just should have to change "Computer name", "Username" and "Password" when calling the Publish-Interactive.ps1-script in order to get it to work, but when I do that I keep getting the error message

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.)

But that confuses me, because I actually have Web Deploy installed via WebPlatformInstaller and the Web Management Service is running. I also tried to ping my VM from my host machine and it is getting through. For testing purposes I switched off the firewall in my VM entirely, too.

But still I get the same error message.

Can anyone guide me towards the right direction? What am I missing?


回答1:


It turned out, the problem I am having here has nothing to do with my server configuration, service account or any other account configuration on my remote machine whatsoever.

The services DO work as they should.

It seems that I either set up my script in the wrong way or it is not working properly. As I looked into the execution of the script I saw that at the end this command was created and tried to execute:

"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

But for this command to work the ComputerName-Parameter needs to include the full address to the target service AND the application name under the IIS site must not be included, so modifying it a bit into this

"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

then did the actual job of deploying to my remote machine. I also posted about this in more detail here, because my problem now went from a server configuration problem to a script configuration problem ;)



来源:https://stackoverflow.com/questions/16560845/msdeploy-cannot-reach-destination-despite-having-web-deployment-service-started

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!