msdeploy не может достичь места назначения, несмотря на то, что запущена служба веб-развертывания
Как вы можете видеть из названия, я испытываю некоторые проблемы при развертывании на удаленном IIS. Вот что я сделал до сих пор:
- Я настроил виртуальную машину с IIS7 на Windows Server 2008.
- Я подключил сетевой адаптер виртуальных машин.
- Я установил и запустил "Службу агента веб-развертывания", а также "Службу веб-управления".
- Я также создал нового пользователя диспетчера 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>
Затем приложение развернуто, и я могу вызвать его из моего браузера.
ОБНОВЛЕНИЕ: Это также работает с этой командой, поэтому должен ответить на вопрос Джеймса Вулфендена о том, имею ли я доступ к веб-сервису 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
затем выполнил реальную работу по развертыванию на моей удаленной машине. Я также написал об этом более подробно здесь, потому что моя проблема теперь перешла от проблемы конфигурации сервера к проблеме конфигурации скрипта;)