Подтвердить что ты не робот

MSDeploy не развертывается на удаленном сервере с использованием MSBuild и Visual Studio 2010

В настоящее время я запускаю Visual Studio Team System 2010 RC, и я пытаюсь настроить службу сборки для создания моего решения и развернуть в нем 3 веб-приложения. Я создал настраиваемую конфигурацию сборки под названием "Интеграция", и я установил "имя веб-сайта/приложения IIS для использования на целевом сервере" на вкладке "Пакет/публикация" свойств для каждого из веб-приложений.

В моем определении сборки я задал следующие аргументы:

/p: DeployOnBuild = True/p: DeployTarget = MSDeployPublish/p: MSDeployPublishMethod = InProc/p: MsDeployServiceUrl = http://my-server-name:8172/msdeploy.axd/p: EnablePackageProcessLoggingAndAssert = True

Однако, когда я запускаю сборку, я получаю следующую ошибку для всех трех веб-приложений:

Обновление setAcl (MyProjectName).

C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(3481,5): ошибка: не удалось выполнить задачу развертывания сети. (Попытка выполнить несанкционированную операцию.)

Я не думаю, что это моя проблема. Эта ошибка возникает после следующей записи в журнале: Обновление setAcl Это вызывает сообщение об ошибке, но похоже, что MSDeploy пытается развернуть локальный IIS на сервере Build, а не сервер, указанный мной с параметром MsDeployServiceUrl.

После просмотра файла целей в папке C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets я добавил EnablePackageProcessLoggingAndAssert, который добавляет дополнительные записи. Журнал показывает строку emptry для значения MsDeployServiceUrl. Я также заметил, что в MsDeployServiceUrl есть строчные буквы s, что несколько сбивает с толку, потому что имя задачи MSDeployPublish имеет верхний регистр S. Я попытался использовать его в верхнем регистре, а затем снова используя строчные буквы, но не работал.

Еще пара замечаний:

  • Служба моего построения работает как NETWORK SERVICE.
  • Сервер, на котором я попытка развернуть на другой домен.
  • Я также попытался добавить /Р: имя пользователя = MYDOMAIN\MyUserName /p: password = mypassword в список параметров MSBuild, но это не помогло.

Кто-нибудь знает, если я поставлю правильные параметры? Или предоставить мне правильные ответы?

Спасибо

4b9b3361

Ответ 1

После многих раундов изменения параметров я смог найти решение и успешно построить конструкцию. Параметры, которые я использовал, были:

/p:DeployOnBuild=True
/p:DeployTarget=MSDeployPublish 
/p:MSDeployPublishMethod=**RemoteAgent** 
/p:MsDeployServiceUrl=http://my-server-name
/p:username=myusername 
/p:password=mypassword

Похоже, что при использовании InProc для MSDeployPublishMethod MSBuild игнорирует MsDeployServiceUrl и всегда пытается развернуть на локальный сервер. Я изменил его на RemoteAgent и успешно развернул. Я заметил, что файл пакета является nolonger, содержащимся в папке MyWebApplication_Package, но для меня это не очень важно.

Ответ 2

Учитывая, что vs2010 является RTM'd, вы можете рассмотреть возможность обновления и посмотреть, не исчезла ли проблема.

Ответ 3

Для сборки, в которой Team Build запускает файл, который вы указали? Если это был файл решения, то просто передать эти свойства в него не означает, что они затем распространяются в каждый файл проекта при его создании. Когда вы создаете файлы решений, только строящиеся файлы передаются только строящимся проектам. Если это так, вы должны создать файл .proj, который по существу заменит ваш файл решения и передаст эти свойства.

Недавно я писал о как заменить файл решения файлом MSBuild.

Сообщите мне, если это не относится к вам или не поможет вам.

FYI, вы также можете быть заинтересованы в этом другом потоке в MSDeploy, но это не та же проблема, что и у вас здесь. Как я могу заставить TFS2010 запускать MSDEPLOY для меня через MSBUILD?.