Что ожидается для параметра DeployIisAppPath в аргументе MSBuild?

SERVERNAME(myDomain\Username)
   Application Pools
   Sites
      DEV Site1
      DEV Site2
      dev Site 3
         bin
         Content
         ...
         Views
      etc ...

Это мой базовый макет нашего веб-сервера DEV. На нашем веб-сервере DEV работает много сайтов. Я пытаюсь использовать TFS 2013 Build для публикации своего веб-сайта на сервере DEV, следуя статьям из Вишал Джоши, Microsoft и другие.

Моя ошибка: "ERROR_SITE_DOES_NOT_EXIST ". Базовый фикс мне не помогает.

В моем примере я использую /p:DeployIisAppPath="dev Site 3". Под сайтом не определены приложения.

инструкции Microsoft бесполезный. Я думал, что должен просто использовать имя сайта IIS, но это не помогло. Какое значение ожидается для этого параметра? Нужно ли кому-нибудь имя пула приложений? Есть ли команда, которую я могу выполнить для IIS, чтобы экспортировать список всех доступных AppPath? Как только я разберусь с этим на сервере DEV, я должен сделать то же самое с сервером STG.

[ОБНОВЛЕНИЕ 1] Добавление полных аргументов MSBuild

/p:DeployOnBuild=True 
/p:DeployTarget=MsDeployPublish 
/p:CreatePackageOnPublish=True 
/p:MSDeployPublishMethod=InProc 
/p:MSDeployServiceUrl=http://SERVER:PORT/MsDeployAgentService
/p:DeployIisAppPath="dev Site 3"

person MADCookie    schedule 06.03.2014    source источник
comment
Вы используете MSDeployPublish (например, /p:DeployTarget=MsDeployPublish)?   -  person CodeWarrior    schedule 07.03.2014
comment
Кроме того, вы также указываете местоположение сайта в URL-адресе службы? Например, '/p:MsDeployServiceUrl=SERVER:8172/MsDeploy.axd?Site=direct'   -  person CodeWarrior    schedule 07.03.2014
comment
Спасибо @CodeWarrior, я обновил свой вопрос. Я должен был включить полный контекст.   -  person MADCookie    schedule 07.03.2014


Ответы (1)


Ваш сервер находится внутри вашего домена, поэтому я буду использовать решение, которое у меня есть для нашего внутреннего сервера. Мне пришлось придумать что-то другое для наших DMZ-серверов.

Аргументы MSBuild

/p:DeployOnBuild=True 
/p:DeployTarget=MsDeployPublish 
/p:CreatePackageOnPublish=False 
/p:MSDeployPublishMethod=WMSvc 
/p:MsDeployServiceUrl="https://SERVER:8172/MsDeploy.axd?Site=direct" 
/p:DeployIisAppPath="direct" 
/p:AllowUntrustedCertificate=True 
/p:AuthType=NTLM 
/p:UserName=

В этом решении используется WMSvc (установленный на веб-сервере), чтобы позволить процессу сборки TFS получить доступ к тем частям сервера, которые ему необходимы при развертывании. Я не пробовал MSDeployAgentService, поэтому я не уверен в этом. В моем случае я не создаю пакет при развертывании (кажется, он вернул ошибку, когда я это сделал, хотя я не помню, что это было).

Кроме того, последние три аргумента необходимы для того, чтобы учетная запись службы сборки TFS могла войти в VMSvc и выполнить свою работу. Если оставить имя пользователя пустым, он будет входить в систему как работающая учетная запись (пароль вводить не нужно, ура!).

Журнал сборки

Вот пример вывода из журнала сборки при успешном развертывании.

   MSDeployPublish:
     Start Web Deploy Publish the Application/package to https://SERVER:8172/MsDeploy.axd?Site=direct ...
     Starting Web deployment task from source: manifest(C:\Builds\1\Direct\Continuous Integration (SERVER)\Binaries\_PublishedWebsites\WEBPROJECTNAME_Package\Archive.SourceManifest.xml) to Destination: auto().
     Adding ACL's for path (direct)
     Adding ACL's for path (direct)
     Updating file (direct\bin\Content\images\buttonBkgHover.png).
          ... Removed for brevity => This section is all 'Updating file (PATH).'
     Updating file (direct\Web.config).
     Adding ACL's for path (direct)
     Adding ACL's for path (direct)
     Successfully executed Web deployment task.
     Publish is successfully deployed.
   PipelineDeployPhase:
     Publish Pipeline Deploy Phase
person CodeWarrior    schedule 06.03.2014
comment
У вас есть пробелы в названиях ваших сайтов? Ваш пример прямой, поэтому я предполагаю, что это имя сайта, которое повторяется в двух параметрах. Если есть пробел, я бы предположил, что вы должны использовать %20 в значении строки запроса сайта. - person MADCookie; 07.03.2014
comment
В URL-адресе я бы ожидал% 20. В DeployIisAppPath я бы просто ожидал пробела, так как он находится в кавычках. - person CodeWarrior; 07.03.2014
comment
не могли бы вы показать мне операторы журнала в сборке, сообщающие вам, что MSDeploy прошел успешно? Моя сборка не дает сбоев, но я не вижу изменения кода сервера. Я не знаю, что искать в журнале MSBuild, чтобы знать, что MSDeploy был вызван и работал. - person MADCookie; 13.03.2014
comment
Хорошо. Добавлен. Не хватает около 1500 строк в середине, где он обновлял файлы на сервере, по одной строке на каждую. Я оставил первую и последнюю такие строки. - person CodeWarrior; 13.03.2014
comment
ОЙ! очень полезно. Так что я НЕ работаю, потому что ничего этого не вижу в своих журналах. - person MADCookie; 15.03.2014
comment
Хм. Имейте в виду, что эти строки относятся к выходным данным диагностического уровня. Убедитесь, что вы используете это. - person CodeWarrior; 15.03.2014