Я развертывании пакета веб-приложения из командной строки MSBuild к MSDepSvc на IIS6, который работает отлично с помощью следующей команды с использованием базовой аутентификации:Можно ли развертывать MSBuild с помощью встроенной проверки подлинности или только базовой?
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=***
Однако то, что я действительно хотел сделать, это падение параметры имени пользователя и пароля и вернуться к интегрированному auth под идентификатором текущего пользователя. Эта команда переходит на сервер сборки, и я бы предпочел не видеть видимые текстовые учетные данные учетной записи с правами администратора в целевой среде (требуется для MsDepSvc). Я не могу найти какую-либо документацию о том, как это сделать, и при отключении учетных данных возвращается 401, когда я пытаюсь опубликовать.
Что особенно огорчает то, что я могу с радостью запустить команду deploy в пакете со встроенным auth (просто не включайте учетные данные), я просто не могу запустить его из командной строки 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? Сейчас это единственный барьер.
Если вы установили UseMSDeployExe в true, команда не включает AuthType = NTLM ??? –
На самом деле, я получаю вызов при публикации из Visual Studio на другую машину в том же домене. После ввода учетных данных, к которым я уже подключился, публикация проходит через тонкую, а основная команда MSBuild DOES показывает AuthType = 'NTLM', но также включает мои учетные данные. Поэтому я возвращаюсь к первоначальной команде! –
Для Visual Studio 2012 вам необходимо полностью опустить свойство/P: UserName. – bmavity