Можно ли развернуть MSBuild с использованием встроенной проверки подлинности или только базовой?

Я развертываю пакет веб-приложения из командной строки MSBuild в MSDepSvc на IIS6, который отлично работает со следующей командой с использованием базовой проверки подлинности:

MSBuild.exe Web.csproj
  /p:Configuration=Debug
  /p:DeployOnBuild=True
  /p:DeployTarget=MSDeployPublish
  /p:MsDeployServiceUrl=http://[server name]/MsDeployAgentService
  /p:DeployIisAppPath=DeploymentTestProject
  /p:MSDeployPublishMethod=RemoteAgent
  /p:CreatePackageOnPublish=True
  /p:username=***
  /p:password=***

Однако , что я' Я действительно хотел бы сделать, это отбросить параметры имени пользователя и пароля и вернуться к встроенной аутентификации под именем текущего пользователя. Эта команда отправляется на сервер сборки, и я бы предпочел, чтобы не были видны учетные данные учетной записи с правами администратора в целевой среде (требуется для MsDepSvc) в виде обычного текста. Я не могу найти какую-либо документацию о том, как это сделать, и удаление учетных данных возвращает 401 неавторизованный, когда я пытаюсь опубликовать.

Что особенно расстраивает, так это то, что я могу с радостью запустить команду развертывания в пакете со встроенной аутентификацией ( просто не включайте учетные данные), я просто не могу запустить его из командной строки MSBuild. Я пытаюсь инкапсулировать пакет и развертывать процессы в одну команду, не редактируя файлы сборки, и это единственное, что в настоящее время используется. После некоторых обсуждений с Сайедом и более глубокого изучения выходных данных командной строки после выполнения приведенной выше команды MSBuild (без параметров имени пользователя и пароля) вызывается следующая команда MSDeploy:

msdeploy.exe
  -source:package='[project path]\Web\obj\Debug\Package\Web.zip' 
  -dest:auto,ComputerName='http://[server]/MsDeployAgentService',UserName='***',IncludeAcls='False',AuthType='NTLM'
  -verb:sync
  -disableLink:AppPoolExtension
  -disableLink:ContentExtension
  -disableLink:CertificateExtension
  -retryAttempts=2

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

Итак, почему исходная команда MSBuild вставляет атрибут UserName при вызове MSDeploy? Сейчас это кажется единственным препятствием.

36
задан Troy Hunt 19 November 2010 в 01:24
поделиться