Как выполнить развертывание с использованием MSDeploy в Team Build 2010 с использованием службы WMSVC и аутентификации NTLM? - PullRequest
30 голосов
/ 03 октября 2011

Я пытаюсь выполнить развертывание с помощью Team Build 2010 на веб-сервере Windows Server 2008 R2. Мой агент сервера сборки настроен для работы под учетной записью домена Windows. Я успешно предоставил разрешения этой учетной записи домена на моем веб-сервере для развертывания с использованием разрешений диспетчера IIS. Эта учетная запись является , а не Администратором на веб-сервере. Я могу получить развёртывание сборки, используя следующие параметры:

/p:DeployOnBuild=True 
/p:DeployTarget=MsDeployPublish 
/p:CreatePackageOnPublish=False 
/p:MSDeployPublishMethod=WMSVC 
/p:AllowUntrustedCertificate=True 
/p:MSDeployServiceUrl=webservername
/p:DeployIisAppPath="Web Site Name"
/p:UserName=DOMAIN\BUILDID
/p:Password=buildidpassword

Поскольку другие разработчики будут настраивать свои сборки, и я бы не стал публиковать пароль для учетной записи домена, мне нужно использовать проверку подлинности NTLM для развертывания. Я хотел бы продолжить использование метода службы Web Management (WMSVC) для развертывания, чтобы BUILDID не был администратором.

Я глубоко вкопался в «Microsoft.Web.Publishing.targets», и похоже, что я должен быть в состоянии передать параметр AuthType для управления типом авторизации, но, похоже, он не оказывает никакого влияния. Я пробовал:

/p:DeployOnBuild=True 
/p:DeployTarget=MsDeployPublish 
/p:CreatePackageOnPublish=False 
/p:MSDeployPublishMethod=WMSVC 
/p:AllowUntrustedCertificate=True 
/p:MSDeployServiceUrl=webservername
/p:DeployIisAppPath="Web Site Name"
/p:AuthType=NTLM

И я также попытался ввести пустое имя пользователя (как показано в другом месте на StackOverflow ), но безрезультатно. Я продолжаю получать ошибку:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(3847,5): ошибка: сбой задачи веб-развертывания. (Подключен к конечному компьютеру («имя веб-сервера») с помощью службы веб-управления, но не смог авторизоваться. Убедитесь, что вы используете правильное имя пользователя и пароль, сайт, к которому вы подключаетесь, существует, и что учетные данные представляют пользователя, у которого есть разрешения на доступ к сайту.)

Я также пробовал параметр UseMsdeployexe, как упоминалось в предыдущей ссылке, но затем я получаю другие ошибки, связанные с преобразованием web.config. Похоже, проблема уже существует в Microsoft Connect и указана как исправленная в следующей проблеме.

Ответы [ 2 ]

10 голосов
/ 10 июля 2012

Есть дополнительный шаг, который я никогда не выполнял:

Источник

При желании вы можете разрешить пользователям проходить аутентификацию через Интернет. Служба управления с использованием NTLM. Для этого обновите реестр на сервер, добавив ключ DWORD с именем «WindowsAuthenticationEnabled» в разделе HKEY_LOCAL_MACHINE \ Software \ Microsoft \ WebManagement \ Server и установите его на 1. Если служба веб-управления уже запущена, настройка вступит в силу после перезапуска службы.

5 голосов
/ 07 января 2012

В случае сбоя при использовании NTLM агенту службы групповой сборки необходимо предоставить разрешение на ваш сайт, чтобы разрешить неадминистраторам подключаться к сайту или к серверу развертывания приложений. Вы можете настроить это в Служба управления .

Возможно, вы захотите взглянуть на настройку параметров поставщика веб-развертывания. Настройки провайдера веб-развертывания

Если указан параметр провайдера wmsvc, типом аутентификации по умолчанию является Basic; в противном случае тип аутентификации по умолчанию - NTLM.

Вы также можете зашифровать свой пароль, используя параметр encryptPassword и сконфигурировав настройку на размещенном сервере, если вы хотите использовать базовый тип аутентификации.

Надеюсь, это поможет.

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

При подключении с использованием веб-службы управления:

  • Убедитесь, что имя пользователя и пароль верны
  • Убедитесь, что сайт существует
  • Убедитесь, что у пользователя есть разрешения IIS Manager для сайта Сфера

При подключении с использованием службы удаленного агента:

  • Убедитесь, что имя пользователя и пароль верны
  • Убедитесь, что указанная вами учетная запись пользователя является членом Группа администраторов на удаленном компьютере. ПРИМЕЧАНИЕ: из-за ошибки в Web Deploy 2.0 пользователь должен быть либо встроенным администратором или член группы безопасности «Администраторы домена». Пытается синхронизировать с любой другой учетной записью пользователя, даже если это администратор, увидит этот код ошибки. Убедитесь, что сайт существует
...