У меня было развертывание MSDeploy, прекрасно работающее с TeamCity, когда я передал учетные данные пользователя.Параметры командной строки (с использованием переменных env. Для некоторых значений):
MSBuild.exe Web.csproj
/ P: конфигурация =% env.Configuration%
/ P: DeployOnBuild= Истина
/ P: DeployTarget = MSDeployPublish
/ P: MsDeployServiceUrl = https://%env.TargetServer%/MsDeploy.axd
/ P: AllowUntrustedCertificate = Истина
/ P: MSDeployPublishMethod = WMsvc
Ong CreatePage= True
/ P: Имя пользователя =% env.AdminUser%
/ P: Пароль =% env.AdminPassword%
Отлично сработало.Но сейчас я хочу использовать встроенную аутентификацию.Я попытался следовать рекомендациям Троя, начиная с Может ли MSBuild развертываться с использованием встроенной аутентификации или только с базовой? , но это не сработало.Я пробовал различные комбинации передачи пустого имени пользователя и указания
/ p: AuthType = NTLM
Самое близкое, что я получаю, указав / p: AuthType =NTLM и передача пустого имени пользователя.Но это все равно приводит к этой ошибке:
Подключено к конечному компьютеру («[имя моего конечного сервера]») с помощью службы веб-управления, но не может авторизоваться.Убедитесь, что вы используете правильное имя пользователя и пароль, что сайт, к которому вы подключаетесь, существует, и что учетные данные представляют пользователя, у которого есть разрешения на доступ к сайту.Удаленный сервер возвратил ошибку: (401) Несанкционированный
Служба веб-управления работает как на локальном, так и на удаленном серверах.Я изменил оба экземпляра, чтобы они работали как пользователь, который, как я знаю, имеет надлежащий доступ к сайту - тот же пользователь, который работает, если я вручную передаю учетные данные.
Я также пытался вручную предоставить этому пользователю разрешения диспетчера IIS для конечного сайта (хотя не уверен, зачем это нужно, поскольку пользователь может публиковать данные на сайте, когда его учетные данные передаются вручную).
Одна вещь, которую я замечаю, заключается в том, что в журнале WMsvc не регистрируется ни одно имя пользователя для попыток, предпринятых с аутентификацией NTLM.
Есть идеи, что здесь происходит.Я действительно не хочу хранить учетные данные пользователя в моей конфигурации TeamCity.
Спасибо.