WebDeploy (401) Несанкционированная ошибка - PullRequest
29 голосов
/ 26 января 2011

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

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

Ответы [ 10 ]

50 голосов
/ 29 января 2011

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

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

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

Recycle WMSvc:

net stop wmsvc & net start wmsvc

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

5 голосов
/ 29 июля 2011

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

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

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

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

4 голосов
/ 20 ноября 2014

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

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

    reg add HKLM \ Программное обеспечение \ Microsoft \ WebManagement \ Server / v WindowsAuthenticationEnabled / t REG_DWORD / d 1

  2. Предоставьте пользователю, работающему с сервисом сборки TFS, в каталоге веб-сайта.

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

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

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

Трассировка была очень полезна в диагностике проблем. Вы можете включить трассировку в службе управления делегированием в IIS Manager. Первоначально я не мог видеть делегирование службы управления в диспетчере IIS. Чтобы показать это, мне пришлось «сменить» Web Deploy с Add Programs, чтобы было установлено делегирование службы управления. Выглядело так, как будто оно было установлено, но я сбросил раскрывающийся список, чтобы установить его на свой компьютер, и завершил установку. Затем он появился в IIS Manager.

3 голосов
/ 28 января 2011

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

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

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

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

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

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

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

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

2 голосов
/ 28 декабря 2011

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

Если сомневаешься, спроси себя: «Ты пытался выключить и снова включить?»Я понимаю, что этот совет не поможет всем с этой неоднозначной ошибкой - лишь немногие избранные.

1 голос
/ 17 октября 2014

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

1 голос
/ 27 апреля 2012

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

ERROR_USER_IS_NOT_ADMIN

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

MyMachineName \ MyWebDeployUser

0 голосов
/ 02 ноября 2017

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

0 голосов
/ 17 марта 2015

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

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

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

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

0 голосов
/ 29 марта 2013

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

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

Открыть панель служб (services.msc)
Найдите Служба агента веб-развертывания и Дважды щелкните, чтобы открыть свойства Служба агента веб-развертывания ... На вкладке «Вход в систему» ​​измените «Вход в систему» ​​на учетную запись администратора ...

...