msdeploy не может достичь места назначения, несмотря на то, что запущена служба веб-развертывания

Как вы можете видеть из названия, я испытываю некоторые проблемы при развертывании на удаленном IIS. Вот что я сделал до сих пор:

  • Я настроил виртуальную машину с IIS7 на Windows Server 2008.
  • Я подключил сетевой адаптер виртуальных машин.
  • Я установил и запустил "Службу агента веб-развертывания", а также "Службу веб-управления".

'Служба агента веб-развертывания' и 'Служба веб-управления' запущены и работают

  • Я также создал нового пользователя диспетчера IIS и предоставил ему доступ к соответствующему веб-сайту.

и локальный администратор, и iisman имеют доступ к сайту, на котором я хочу развернуть

Теперь развертывание само работает, когда я делаю это, например, так:

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>

Затем приложение развернуто, и я могу вызвать его из моего браузера.

ОБНОВЛЕНИЕ: Это также работает с этой командой, поэтому должен ответить на вопрос Джеймса Вулфендена о том, имею ли я доступ к веб-сервису msdeploy:

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-подход (также описанный здесь).
Поэтому я создаю WebDeploy-Package из Visual Studio 2012, который я хочу развернуть. Развертывание этого, как правило, тоже не проблема, так как я запускаю его на своем локальном компьютере.

И мой локальный IIS, и мой виртуальный компьютер имеют одинаковую структуру WebSite, поэтому мне просто нужно изменить "Имя компьютера", "Имя пользователя" и "Пароль" при вызове сценария Publish-Interactive.ps1 в чтобы заставить его работать, но когда я делаю это, я получаю сообщение об ошибке

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

Но это меня смущает, потому что у меня фактически установлен Web Deploy через WebPlatformInstaller и запущена служба веб-управления. Я также попытался пропинговать свою виртуальную машину с хост-машины, и она проходит. В целях тестирования я тоже полностью отключил брандмауэр на своей виртуальной машине.

Все профили брандмауэра отключены

Но все равно я получаю то же сообщение об ошибке.

Кто-нибудь может направить меня в правильном направлении? Что мне не хватает?

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

затем выполнил реальную работу по развертыванию на моей удаленной машине. Я также написал об этом более подробно здесь, потому что моя проблема теперь перешла от проблемы конфигурации сервера к проблеме конфигурации скрипта;)

Другие вопросы по тегам