Ошибка WebDeploy 401 Unauthorized: сбой публикации сайтов в IIS
Симптомы ошибки авторизации Web Deploy 401
При публикации веб-проекта из Visual Studio, Azure DevOps или через утилиту msdeploy.exe процесс завершается с ошибкой: Error: Web deployment task failed. Connected to the remote computer using Web Management Service, but could not authenticate. Error: (401) Unauthorized.
| Симптом | Где возникает | Причина |
|---|---|---|
| HTTP 401 Unauthorized | Visual Studio / CI-CD Runner | Пользователь не имеет прав на делегирование Web Deploy или не включен в список разрешенных |
| Logon failure: unknown user name | Журнал безопасности Security | Неверные учетные данные или блокировка учетной записи |
| ERROR_USER_NOT_AUTHORIZED | Лог MSDeploy | Отсутствуют правила делегирования (Management Service Delegation Rules) в IIS |
Пошаговая настройка прав и исправление Web Deploy 401
- Настройте права пользователя на уровне сайта в IIS: в консоли IIS Manager выберите сайт > Разрешения диспетчера служб IIS (IIS Manager Permissions) > нажмите «Разрешить пользователя» и добавьте учетную запись публикации.
- Настройте правила делегирования служб управления (Management Service Delegation): на уровне сервера откройте Делегирование службы управления и убедитесь, что включены правила для провайдеров
contentPath,iisApp,setAcl. - Предоставьте права NTFS на папку сайта:
icacls "C:\inetpub\wwwroot\MySite" /grant "Domain\DeployUser:(OI)(CI)M" /T - Перезапустите службу Web Management Service:
Restart-Service -Name WMSvc -Force
Совет: Если для публикации используется учетная запись непривилегированного пользователя, строка подключения должна указывать точный URL сайта: https://server:8172/msdeploy.axd?site=MySiteName.
Частые вопросы (FAQ)
Почему администратор домена может получать ошибку 401 при публикации?
Если на сервере активен UAC (Remote UAC), сетевые токены администраторов урезаются. Для публикации укажите точный параметр /wmsvc:server без суффикса сайта или настройте LocalAccountTokenFilterPolicy.
Чем отличается порт 8172 от службы MsDepSvc (порт 80)?
Порт 8172 обслуживается службой WMSvc и поддерживает безопасное делегирование прав обычным пользователям. MsDepSvc работает только с правами локального администратора.
Как проверить доступность сервиса деплоя через браузер?
Откройте адрес https://имя_сервера:8172/msdeploy.axd. При корректной работе появится окно ввода логина/пароля, а после аутентификации — пустая страница.
Где посмотреть подробные журналы ошибок Web Deploy?
В Просмотре событий: Журналы приложений и служб -> Microsoft Web Deploy.