WebDeploy (401) Неавторизованная ошибка

Я получаю несанкционированную ошибку из MsDeploy с использованием проверки подлинности NTLM при попытке удаленного развертывания приложения с использованием пользователя Windows, который не является локальным администратором на конечном сервере. У меня есть правила настройки в Делегировании службы управления в поле назначения со всеми проверенными поставщиками. В соответствии с этим правилом я добавил 2 пользователя с разрешениями разрешений ('*' и мой пользователь Windows, который делает удаленное развертывание). Кроме того, я дал разрешение на использование Windows-пользователей на сайте, который я пытаюсь развернуть. Если я сделаю Windows-пользователя локальным администратором в поле назначения и установлю "Разрешить администраторам обходить правила", развертывание работает правильно. Если пользователь Windows не является локальным администратором, я получаю следующую ошибку:

Не удалось установить задачу развертывания сети. (Удаленный агент (URL http://xxxxxxxx/MSDEPLOYAGENTSERVICE) не удалось связаться. Убедитесь, что служба удаленного агента установлена ​​и запущен на целевом компьютере.) Убедитесь, что имя сайта, имя пользователя и пароль верны. Если проблема не устранена, обратитесь к местному администратору или администратору сервера. Сведения об ошибке: Удаленный агент (URL http://xxxxx/MSDEPLOYAGENTSERVICE) не удалось связать. Убедитесь, что служба удаленного агента установлена ​​и запущена на целевом компьютере. Был получен неподдерживаемый ответ. Заголовок ответа "MSDeploy.Response" был "V1", но ожидалось "v1". Удаленный сервер ответил на ошибку: (401) Неавторизованный. в Microsoft.Web.Publishing.targets(3588, 5)

Ответ 1

Если вы настроили делегирование на "Разрешить администраторам обходить правила" и команда msdeploy преуспевает, вы проходите через WMSvc, и это позволяет вам пройти. В противном случае из ответа кажется, что WMSvc отвергает вас, и вы возвращаетесь к агенту Web Deloy.

Установите/добавьте следующее значение reg в ключ реестра WMSvc:

reg add HKLM\Software\Microsoft\WebManagement\Server /v WindowsAuthenticationEnabled /t REG_DWORD /d 1

Переработка WMSvc:

net stop wmsvc & net start wmsvc

Повторите попытку. Если это не удается, вы можете опубликовать свою командную строку msdeploy.

Ответ 2

У нас есть машина, которую мы развертываем как часть нашего процесса сборки. По какой-то очевидной причине развертывания перестали работать, и мы больше не могли удаленно обращаться к любой из административных долей (C $, ADMIN $и т.д.). Мы обнаружили исправление для административных пакетов, которое также устранило проблемы с развертыванием.

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

http://support.microsoft.com/kb/947232

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

Ответ 3

Не уверен по конкретной причине, но может помочь вам найти свой путь.

WebDeploy использует две точки входа на основе конфигурации удаленного сервера, а именно: работает ли IIS6 или IIS7.

В IIS 7 используется обработчик развертывания IIS, который управляется службой веб-управления и позволяет msdeploy напрямую предоставлять IIS. Все настройки "делегирование службы управления" и т.д. Относятся к этой настройке.

IIS 6, однако, не имеет службы веб-управления, поэтому обработчик не будет работать. Для целей IIS6 используется служба под названием MS Deploy Agent Service.

Нечетным является то, что ваша установка предполагает, что вы используете IIS 7, так как вы смогли установить параметры дегазации и т.д. Однако этот URL-адрес "/MSDEPLOYAGENTSERVICE" предполагает, что ваша машина пытается использовать эту услугу... почти как будто он думает о своем IIS 6. Для этого требуется доступ администратора, поэтому вы получаете эту ошибку.

Основываясь на ошибке, похоже, что вы вызываете это из MSbuild, скорее всего, напрямую из Visual Studio. Вы можете посмотреть вокруг настроек, которые вы указали, и посмотреть, не вызвано ли что-то в этом пути и/или выбором сервера.

Также убедитесь, что служба веб-управления запущена на удаленном компьютере.

В основном вы хотите, чтобы он вызывал вызовы разворота на другой URL-адрес, http://< > /msdeploy.axd(если я правильно помню), чтобы правильно вызвать обработчик.

Ответ 4

Это пошло слишком много часов моего времени. У меня уже был Web Deploy, работающий на других моих сайтах. Я решил добавить новый веб-сайт на свой сервер и попытался установить его (но случайно оставил одно и то же имя "Site/application" из-за чрезмерной ошибки копирования/вставки). Публикация прошла успешно, но когда я понял, что я опубликовал не тот сайт (вместо нового сайта), я изменил имя сайта и попытался повторно развернуться, но я продолжал получать эту ошибку. Я все испробовал в конце IIS. Наконец, я просто полностью закрыл экземпляр Visual Studio 2010. Открыл его, снова попытался опубликовать, и он сработает!

Когда вы сомневаетесь, спросите себя: "Вы пытались отключить его и снова включить?"
Я понимаю, что этот совет не поможет всем с этой двусмысленной ошибкой - всего лишь несколько избранных.

Ответ 5

Наконец-то я смог запустить автоматическую сборку и развертывание с использованием NTLM. Я просто хотел обобщить все, что нужно, чтобы добиться успеха в случае, если это будет полезно для всех. Это с IIS 7.5.

  • Установите параметр реестра и перезапустите службу веб-управления (WMSVC):

    reg add HKLM\Software\Microsoft\WebManagement\Server/v WindowsAuthenticationEnabled/t REG_DWORD/d 1

  • Предоставьте пользователю разрешение на использование службы TFS в каталоге веб-сайта.

  • Вот аргументы MSBuild, которые я использовал. Замените различные имена на свои имена. Я использовал DEV и любой процессор. Я также должен был разрешить ненадежный сертификат.

    /m/p: PublishProfile = DEV/p: Конфигурация = DEV/p: Платформа = "Любой процессор" /p: DeployOnBuild = true/p: AllowUntrustedCertificate = true/p: authType = NTLM

  • В диспетчере IIS с выбранным веб-узлом назначения откройте разрешения диспетчера IIS и разрешите пользователю запускать службу сборки TFS.

Трассировка была очень полезной при диагностике проблем. Вы можете включить отслеживание в службе управления службой в диспетчере IIS. Первоначально я не мог видеть делегацию службы управления в диспетчере IIS. Чтобы показать, что мне пришлось "изменить" веб-развертывание из "Добавить программы", чтобы была установлена ​​делегирование службы управления. Похоже, он был установлен, но я reset раскрывающийся список для установки на свой компьютер и завершил установку. Затем он появился в диспетчере IIS.

Ответ 6

Если ваш пользователь является администратором, но вы все равно получаете

ERROR_USER_IS_NOT_ADMIN

убедитесь, что вы используете полное имя пользователя.

MyMachineName\MyWebDeployUser

Ответ 7

Я думаю, что ваша проблема очень проста... У меня была та же проблема, что и вы...

Фактически, моя проблема заключалась в том, что сетевые службы были учетной записью входа в службу Web Deploy Agent Service и у нее нет достаточных разрешений для изменения или чтения файлов IIS...

Чтобы решить вашу проблему, выполните следующие действия:

Откройте "Павильон услуг" (services.msc)
Найдите службу Web Deploy Agent Service и Дважды щелкните, чтобы открыть свойства Веб-развертывание агента службы. На вкладке "Вход в систему" ​​измените "Войти в систему" ​​на учетную запись администратора...

Я надеюсь помочь вам.

Ответ 8

Вчера я смог развернуть все отлично, сегодня было такое же сообщение об ошибке. Через час или два из устранения неполадок я закончил удаление домена из своего имени пользователя. Где раньше [домен]/[имя_пользователя] я изменил его на просто [имя_пользователя], и вот, он снова начал работать. Я знаю, что это не очень хороший ответ, но, возможно, это поможет кому-то другому, кто сталкивается с ним.

Ответ 9

Web Deploy перестает работать для нас вчера, когда использует текущий идентификатор пользователя Windows (он работал с явными учетными данными) после установки патчей для MS15-025 и MS15-027 на одном из наших контроллеров домена под управлением Windows Server 2003.

Мы проверили все рекомендации для Web Deploy и не смогли разрешить ошибку HTTP 401.2.

Теперь Microsoft переиздала исправления для обоих бюллетеней специально для Windows Server 2003 (KB3033395-v2 и KB3002657-v2). После установки обновленных патчей и загрузки контроллера домена он снова работал сразу. Нам даже не пришлось перезапускать какие-либо службы на веб-сервере.

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

Ответ 10

Есть и другая возможность: ваша учетная запись была заблокирована из-за слишком многих неудачных попыток развертывания при развертывании в Интернете. Reset ваша учетная запись или ваш системный администратор сделает это за вас. Очень расстраивает.