Как выполнить развертывание с помощью MSDeploy и TeamCity со встроенной аутентификацией Windows?

У меня было развертывание MSDeploy, прекрасно работающее с TeamCity, когда я передавал учетные данные пользователя. Параметры командной строки (с использованием переменных окружения для некоторых значений) были:

MSBuild.exe Web.csproj
/P:Configuration=%env.Configuration%
/ P: DeployOnBuild = True
/ P: DeployTarget = MSDeployPublish
/ P: MsDeployServiceUrl = https: //%env.TargetServer%/MsDeploy.axd
/ P: AllowUntrustedCertificate = True
/ P: MSDeployPublishMethod = WMsvc
/ P: CreatePackageOnPublish = True
/ P: UserName =% окр.AdminUser%
/P:Password=%env.AdminPassword%

Отлично работал. Но теперь я хочу использовать встроенную аутентификацию. Я попытался последовать советам Троя из Может ли MSBuild развернуться с использованием встроенной проверки подлинности или только базовой? , но это не помогает. Я пробовал различные комбинации передачи пустого имени пользователя и указания

/ p: AuthType = NTLM

Ближайшее, что я могу получить, - это указать / p: AuthType = NTLM и передать пустое имя пользователя. Но это все равно приводит к этой ошибке:

Подключено к конечному компьютеру («[мое имя конечного сервера]») с помощью службы веб-управления, но не может авторизоваться. Убедитесь, что вы используете правильное имя пользователя и пароль, что сайт, к которому вы подключаетесь, существует и что учетные данные представляют пользователя, у которого есть разрешения на доступ к сайту. Удаленный сервер возвратил ошибку: (401) Неавторизованный

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

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

Я заметил одну вещь: в журнале WMsvc не регистрируется никакое имя пользователя для попыток, сделанных с помощью NTLM auth.

Есть идеи, что здесь происходит. Я действительно не хочу хранить учетные данные пользователя в моей конфигурации TeamCity.

Спасибо.

8
задан Community 23 May 2017 в 12:25
поделиться