Web Deploy 3.0 приводит в ярость ошибку 401 при публикации

Кажется, я не могу получить простое приложение для развертывания на сервере IIS, администратором которого я являюсь. Вот сообщение об ошибке, которое я получаю от VS2010 (доменное имя изменено для защиты невиновных):

    ------ Build started: Project: HelloWorldWeb, Configuration: Debug Any CPU ------
      HelloWorldWeb -> D:\$Data\mhtest\HelloWorldWeb\bin\HelloWorldWeb.dll
    ------ Publish started: Project: HelloWorldWeb, Configuration: Debug Any CPU ------
    Transformed Web.config using Web.Debug.config into obj\Debug\TransformWebConfig\transformed\Web.config.
    Auto ConnectionString Transformed Account\Web.config into obj\Debug\CSAutoParameterize\transformed\Account\Web.config.
    Auto ConnectionString Transformed obj\Debug\TransformWebConfig\transformed\Web.config into obj\Debug\CSAutoParameterize\transformed\Web.config.
    Copying all files to temporary location below for package/publish:
    obj\Debug\Package\PackageTmp.
    Start Web Deploy Publish the Application/package to http://www.myserver.com/MSDEPLOYAGENTSERVICE ...
    C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(3847,5): Error : Web deployment task failed.(Remote agent (URL http://www.myserver.com/MSDEPLOYAGENTSERVICE) could not be contacted.  Make sure the remote agent service is installed and started on the target computer.)
    Make sure the site name, user name, and password are correct. If the issue is not resolved, please contact your local or server administrator.
    Error details:
    Remote agent (URL http://www.myserver.com/MSDEPLOYAGENTSERVICE) could not be contacted.  Make sure the remote agent service is installed and started on the target computer.
    An unsupported response was received. The response header 'MSDeploy.Response' was 'V1' but 'v1' was expected.
    The remote server returned an error: (401) Unauthorized.
    Publish failed to deploy.
    ========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
    ========== Publish: 0 succeeded, 1 failed, 0 skipped ==========

Пока у меня есть:

  • Установленный Web Deploy 3.0 на сервере IIS
  • Установил службу веб-управления, хотя я не думаю, что еще пытаюсь ее использовать, я хочу сделать все это через порт 80 на данный момент (в отличие от 8172).
  • Гарантировано, что служба MsDepSvc запущена от имени пользователя, который является членом группы администраторов.
  • Убедился, что учетные данные, которые я использую в VS2010 во время развертывания, являются пользователем, который является членом администраторов.
  • Убедился, что сайт и приложение, которые я ввел, соответствуют тому, что уже существует на сервере IIS.

Другие детали:

  • Сервер IIS находится удаленно, за брандмауэром, а не в домене моей рабочей станции. Я предполагаю, что должен делать это с помощью Basic Auth, хотя я не могу найти способ указать это, если он еще не установлен по умолчанию.
  • Если я открою браузер и перейду к http://www.myserver.com/MSDEPLOYAGENTSERVICE, меня просят ввести учетные данные. Если я ввожу действительные учетные данные администратора, я получаю пустой экран — трассировка сети показывает, что сервер ответил ошибкой 401.

person Michael12345    schedule 18.02.2013    source источник


Ответы (1)


Мне удалось заставить его работать. Я вернулся к документу по устранению неполадок: http://www.iis.net/learn/publish/troubleshooting-web-deploy/troubleshooting-common-problems-with-web-deploy

Примерно на трети пути он ссылается на ошибку 401, я прочитал его более внимательно:

Попытка получить доступ к службе удаленного агента в качестве администратора

СИМПТОМЫ

Microsoft.Web.Deployment.DeploymentException:

Could not complete the request to remote agent URL 'http://DestinationServer/msdeployAgentService'. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.

ОСНОВНАЯ ПРИЧИНА

Для службы удаленного агента требуется, чтобы вызывающий абонент был членом группы администраторов или учетной записью домена, добавленной в группу администраторов. Локальный администратор, который не является встроенной учетной записью, не будет работать со службой удаленного агента из-за ошибки в Web Deploy 2.0.

ИСПРАВЛЕНИЕ/ВРЕМЕННОЕ РЕШЕНИЕ

Укажите учетные данные администратора

Итак, мне не нужно было использовать «учетную запись администратора», мне нужно было использовать «учетную запись администратора». Я мог бы заметить это в первый раз, если бы он не использовал сбивающее с толку двойное отрицание и был бы ясен об ошибке, также существующей в текущей версии, то есть 3.0 на момент написания.

person Michael12345    schedule 19.02.2013
comment
Этот баг бесит! Насколько сложно было исправить эту ошибку с 2.0 на 3.0?!!! Из-за этого мне пришлось полностью изменить процесс непрерывной интеграции!!!!! - person Hungry Beast; 01.05.2013
comment
Еще более бесит, что до сих пор не пропатчено, так как я только сейчас занимаюсь настройками!!! - person Jon Egerton; 27.01.2014