MSDeploy.exe может подключаться как Администратор, но не любая другая учетная запись Windows - программирование
Подтвердить что ты не робот

MSDeploy.exe может подключаться как Администратор, но не любая другая учетная запись Windows

Я интегрирую MSDeploy в свой процесс сборки и испытываю проблемы при аутентификации. Следующая команда отлично работает:

msdeploy -verb:sync -source:appHostConfig="KitchenPC",computerName=192.168.0.3,userName=Administrator,password=secret -dest:package=c:\DeployTest\KPC.zip

Однако это НЕ работает:

msdeploy -verb:sync -source:appHostConfig="KitchenPC",computerName=192.168.0.3,userName=kpcpublish,password=secret -dest:package=c:\DeployTest\KPC.zip

И выдает ошибку:

Error Code: ERROR_USER_NOT_ADMIN
More Information: Connected to '192.168.0.11' using the Web Deployment Agent Service, but could not authorize. Make sure you are an administ
rator on '192.168.0.11'.  Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_NOT_ADMIN.
Error: The remote server returned an error: (401) Unauthorized.
Error count: 1.

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

  • Я создал учетную запись kpcpublish
  • Я добавил эту учетную запись в группу под названием MSDepSvcUsers - Heck, я даже добавил учетную запись администраторам.
  • Я щелкнул правой кнопкой мыши по сайту и выбрал Deploy- > Configure Web Deploy Publishing и добавил в список kpcpublish. В нем говорится следующее:

.

Publish enabled for 'SERVER\kpcpublish' Granted 'SERVER\kpcpublish'
full control on 'C:\Website' Successfully created settings file
'C:\Users\Administrator\Desktop\SERVER_kpcpublish_KitchenPC.PublishSettings'

Должен быть какой-то шаг, который мне не хватает, но я просто не могу понять, что может быть.

UPDATE:

Используя полный HTTP-путь для свойства computerName, я получаю сообщение об ошибке:

Код ошибки: ERROR_DESTINATION_NOT_REACHABLE Дополнительная информация: Could не подключаться к удаленному компьютеру ( "192.168.0.3" ). На пульте дистанционного управления компьютер, убедитесь, что установлен Web Deploy и что требуется процесс ( "Служба веб-управления" ). Узнайте больше: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_NOT_REACHABLE. Ошибка: невозможно подключиться к удаленному серверу Ошибка: попытка подключения не удалась, потому что подключенная сторона не должным образом реагировать после определенного периода времени или установленного соединения fa из-за того, что подключенный хост не смог ответить 192.168.0.3:8192 Количество ошибок: 1.

Я проверил и служба веб-управления действительно работает.

Другое обновление:

Я полностью проложил систему и снова установил ее с нуля. Я не делал ничего необычного, просто установил роль IIS и убедился в том, чтобы проверить "Management Service" в разделе "Средства управления", который требуется для запуска WMSVC. Затем я установил Web PI и установил "Рекомендуемая конфигурация для хостинг-провайдеров", в которой будет установлен Web Deploy 3.0. Тем не менее, я заметил, что при установке была ошибка, но я тоже ошибся в последнем случае. Это выглядит так:

enter image description here

Я также добавил файлы журнала здесь.

Затем я попытался установить Web Deploy 3.0 вручную, однако он говорит, что он уже установлен. Затем я загрузил MSI непосредственно из http://www.iis.net/download/webdeploy и запустил его в режиме "Ремонт". Кажется, это сработало. Я также заметил, что служба WMSVC работает и работает. Так что это выглядит хорошо.

Тем не менее, MSDeploy не будет подключаться. Я думал, что это может быть какая-то проблема с брандмауэром, поэтому я ее запускал локально. Я пытался использовать HTTPS и HTTP для подключения. HTTPS дает мне ошибку, HTTP просто разыгрывает через 2-3 минуты.

HTTPS:

msdeploy -verb:sync -source:appHostConfig="Default Web Site",computerName=https://STAGING:8172/msdeploy.axd,userName=Administrator,password=Khorf123 -dest:package=c:\DeleteMe.zip
Info: Using ID 'f3a54096-adc4-4f54-9e4f-ad8fde12edb6' for connections to the remote server.
Error Code: ERROR_CERTIFICATE_VALIDATION_FAILED
More Information: Connected to the remote computer ("staging") using the specified process ("Web Management Service"), but could not verify the server certifi
cate. If you trust the server, connect again and allow untrusted certificates.
Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_CERTIFICATE_VALIDATION_FAILED.
Error: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
Error: The remote certificate is invalid according to the validation procedure.
Error count: 1.

HTTP:

msdeploy -verb:sync -source:appHostConfig="Default Web Site",computerName=http://STAGING:8172/msdeploy.axd,userName=Administrator,password=Khorf123 -dest:package=c:\DeleteMe.zip
Info: Using ID 'ebee66f0-08e5-4d9d-98ea-0c2e59784895' for connections to the remote server.
Error: Could not complete the request to remote agent URL 'http://staging:8172/msdeploy.axd'.
Error: The operation has timed out
Error count: 1.
4b9b3361

Ответ 1

(Обновлено 2016-03-07). ПРИМЕЧАНИЕ: для не-администраторских развертываний также требуется ?site=IIS_SITE_NAME после msdeploy.axd, в противном случае соединение рассматривается как глобальное и требует доступа администратора)

Не уверен, как это пропустило это изначально, но ваша проблема - это параметр computerName. Неадминистративные развертывания поддерживаются только при использовании WMSVC, для чего вам необходимо указать полный URL.

Попробуйте выполнить

msdeploy -verb:sync ^
  -source:appHostConfig="KitchenPC",computerName=https://192.168.0.3:8172/MsDeploy.axd,userName=kpcpublish,password=secret,authType=Basic ^ 
  -dest:package=c:\DeployTest\KPC.zip 

Из документов:

Имя компьютера будет переведено на URL-адрес веб-развертывания по умолчанию. Например, имя_компьютера = Server1 станет http://Server1/MsDeployAgentService. Если удаленная служба работает с настраиваемым портом или URL-адресом, вы должны указать полный URL

И из инструкций по установке:

MSI не будет устанавливать компонент обработчика службы веб-управления, если служба веб-управления не установлена; компонент обработчика необходим для развертывания без администратора.

(Я не смог найти более явный канонический источник, который описывает WMSVC как требование для развертываний без администратора)

Ответ 2

Выяснилось!

Итак, кажется, что (по крайней мере, по умолчанию), WMSVC только слушает HTTPS, а HTTP просто отключится. Однако, поскольку мой сертификат был самоподписанным, мне пришлось использовать опцию -allowUntrusted командной строки.

Этого было почти достаточно. Мне также пришлось указать authType = Basic, как первоначально предполагал Ричард. Итак, чтобы собрать все это вместе, это будет действительно работающая командная строка MSDeploy:

msdeploy -verb:sync -source:appHostConfig="Default Web Site",computerName=https://192.168.0.3:8172/msdeploy.axd,authType=Basic,userName=Publish,password=secret -dest:package=c:\DeployTest\KPC.zip -allowUntrusted

Ответ 3

Попробуйте перезапустить службу wmsvc на целевом компьютере.

Ответ 4

После настройки Web Разверните мой сервер следующим образом. Я продолжал получать HTTP 404 отказы подключения. В мае, что сработало для меня, были следующие дополнительные усилия...

  • Удалите всю предыдущую версию существующего веб-развертывания. Я даже не знал, что они существуют; однако предыдущие версии конфликтуют с завершением подключения к последней службе Web Deploy. Более новая версия не удаляет своих предшественников. В последней части я получал HTTP 401.7 - File Extension Denied.
  • Для хорошей меры, выполнил ремонт текущей версии Web Deploy, в настоящее время Microsoft Web Deploy 3.6
  • Для хорошей оценки заново создайте и импортируйте мой профиль развертывания Visual Studio 2013...
    • заново создайте publish settings file, используя диалог Configure Web Deploy Publishing, доступный из опции контекстного меню Deploy целевого веб-сайта в панели IIS Manager Connections. (Примечание. publish settings file будет воссоздаваться, когда вы нажимаете Setup в качестве файла, полный путь которого указан в записи диалога, Specify a location to save the publish settings file)
    • Скопируйте или иным образом сделайте publish settings file доступным для Visual Studio и выбрав Publish из контекстного меню проекта, создайте профиль публикации Visual Studio, импортировав publish settings file.

Ответ 5

Как указано выше, убедитесь, что вы подключаетесь через HTTPS. Если вы пытаетесь подключиться как Admin, но не используете SSL, вы получаете следующую ошибку:

Код ошибки: ERROR_USER_NOT_ADMIN

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

(где "host" - ваше имя сервера)

Ответ 6

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