Получение 404 из WMSvc через MSDeploy.exe


121

От Windows 8 до Windows Server 2012 (IIS 8) с установленными и работающими службами веб-управления я могу использовать диспетчер IIS на W8 для управления удаленным сервером, но я получаю 404.7 от WMSvc, когда выполняю следующую команду:

msdeploy.exe" -verb:dump -source:contentPath=c:\InetPub\wwwroot,computerName=https://uktnws01:8172/MsDeploy.axd,userName=corp\administrator,password=WMSvcIsCrap,authType=Basic -allowUntrusted

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

Я просто удаляю функцию Management Service из Windows и перезапускаю. Я налью себе скотч и приготовлю закуски. А пока, если у вас есть идеи, поделитесь, пожалуйста.

Присоединяйтесь к моему живому блогу ниже и следите за действиями.

Обновление 1

После удаления службы управления я получаю

Ошибка: невозможно подключиться к удаленному серверу. Ошибка: не удалось установить соединение, потому что целевая машина активно отказалась от него 192.168.2.22:8172. Количество ошибок: 1.

Где 2-я строка - новое сообщение! Woohoo.

Обновление 2

Ладно, теперь дела идут все хуже и хуже. После переустановки удаленная консоль IIS выдаст предупреждение о сертификате и скажет:

Сервер не принимает удаленные подключения.

Но я думаю, это потому, что я, вероятно, не включил удаленное управление, помимо установки этой чертовой штуки.

Обновление 3

При включенном удаленном управлении удаленный IIS снова работает, но 404 вернулся. Вот полный текст ошибки в интересах SEO:

Error Code: ERROR_DESTINATION_NOT_REACHABLE More Information: Could not connect to the remote computer ("uktnws01"). On the remote computer, make sure that Web Deploy is installed and that the required process ("Web Management Service") is started.  Learn more at http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_NOT_REACHABLE.
Error: The remote server returned an error: (404) Not Found.
Error count: 1.

Обновление 4

Пробовал ту же команду против другого веб-сервера через VPN для клиента, и это прекрасно работает! Похоже, IIS в восторге от моей новой сборки 2012 года.

Обновление 5

Я включил отслеживание неудачных запросов для WMSvc и увидел, что 404.7 поступает из модуля RequestFilteringModule. 404.7 - это «расширение файла запрещено» согласно документации.

http://www.iis.net/configreference/system.webserver/security/requestfiltering

Однако добавление явного правила сервера для файлов .axd не помогает. Интересно увидеть этот модуль, поскольку он накладывает ограничения на длину URL и размер контента. Можете ли вы представить себе решение этой проблемы в приложении WCF, размещенном в IIS! Ха-ха. Я правда плачу.

Обновление 6

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

Обновление 7

Я переустанавливаю все, и тут из ниоткуда появляется какой-то австралиец по имени Ричард и полностью объясняет, что веб-развертывание на самом деле не является частью WMSvc в стандартной комплектации даже в IIS 8, и что мне нужно установить веб-развертывание.

Так и делаю. Затем я отключаю MsDepSvc, который является другой частью, которую он устанавливает (что, как я думал, представляет собой полное веб-развертывание), потому что он засасывает порт 80 и не позволяет балансировщикам нагрузки видеть отключенную службу IIS.

И это работает. Я могу лечь спать.


24
+1 за веселый пароль
Michael12345

4
Насколько мы все теряем из-за этого беспорядка? У меня возникла аналогичная проблема, но я столкнулся со случаем, когда IIS дает сбой при поиске имен пользователей.
ATL_DEV

6
В Windows 2012 для меня это был порядок установки, мне нужно было сначала установить функцию Web Management Service, а затем установить Web deploy 3.5.
JustEngland

1
Недостаточно установить веб-развертывание !. У меня было установлено веб-развертывание, это было первое, что я сделал. Пришлось добавить / удалить программы и изменить настройки установки, чтобы включить обработчик. Я желаю любви, счастья и процветания разработчику MS, который посчитал разумным по умолчанию не включать обработчик, который позволяет службе выполнять свою работу.
nurettin

У меня были всевозможные проблемы, пытаясь заставить работать Web Deploy 3.6, поэтому следил за комментарием Sinned Lolwut и удалил 3.6, а вместо этого установил 3.5 - сначала сработало. Я использовал установщик веб-платформы ( microsoft.com/web/downloads/platform.aspx ) для установки Web Deploy 3.5. После этого перезапустил службу веб-управления и смог проверить соединение в профиле веб-развертывания Visual Studio. (Я бы ответил в комментарии выше, но пока не имею достаточной репутации).
боб № 2

Ответы:


86

Вы установили Web Deploy на сервере? Web Deploy регистрирует обработчик (/msdeploy.axd) в WMSVC, поэтому ожидаемым кодом состояния будет 404, если он не был установлен.


2
Нет, не видел. Я не знал, что мне нужно! Я думал, что все развертывание было частью WMSvc? OMG, я думаю, ты прав, они такие тупые. Недавно я был настолько сбит с толку всем этим и подумал, что Web Deploy, который вы устанавливаете, был всего лишь агентом для хостинговых компаний и тому подобного. Посмотрите мой другой вопрос stackoverflow.com/questions/13602502/…
Люк Пуплетт,

2
WMSVC предназначен для удаленной настройки IIS. MSDeploy был создан намного позже, поэтому его нельзя интегрировать в ядро. Если установка MSDeploy невозможна, вы можете использовать временный агент, который установит обработчик на время развертывания (очевидно, вам понадобится доступ администратора).
Ричард Салай

16
Мне пришлось удалить Web Deploy 3, а затем снова установить его, чтобы он заработал. Как-то мой IIS8 испортился.
Росди Касым

31
Та же проблема, просто зашел в панель управления и изменил установку «Веб-развертывание», чтобы включить обработчик. Перезапустил службу WMSVC, и все было хорошо!
Мэтт Вудворд

13
Если вы установили веб-развертывание до установки службы веб-управления, вам необходимо будет выполнить процедуры, описанные выше
Мэтт Бейкер,

180

Если у кого-то есть те же проблемы, что и у меня, я также получил ту же ошибку 404. Самым быстрым способом проверки, который я нашел, было зайти на сам сервер и открыть «https: // <servername>: 8172 / MsDeploy.axd». Chrome и Firefox просто показали пустую страницу, поэтому мне пришлось использовать вкладку «Сеть» в инструментах разработчика (F12), чтобы увидеть фактическое сообщение об ошибке 404.

Каким-то образом при установке Web Deploy 3.0 из установщика веб-платформы обработчик развертывания IIS 7 не был установлен, хотя модуль пользовательского интерфейса диспетчера IIS был установлен. В моем случае я загрузил MSI-файл установки средства веб-развертывания по следующей ссылке: Установка средства веб-развертывания . Затем мне пришлось вернуться в IIS Admin Tool (Пуск -> Выполнить -> inetmgr.exe)> {имя сервера}> щелкнуть значок службы управления и перезапустить службу управления до того, как обработчик MsDeploy.axd заработал.

Включение обработчика развертывания IIS + службы удаленного агента

введите описание изображения здесь


99
Я смог перейти в Панель управления> Программы и компоненты. Щелкните правой кнопкой мыши «Microsoft Web Deploy 3.5» и выберите «Изменить». В установщике выберите «Изменить», и «Обработчик развертывания IIS» будет доступен в качестве опции (сначала был отключен. Кроме того, «Настроить для развертываний без прав администратора» и «Пользовательский интерфейс делегирования службы управления» были дополнительными параметрами). Мой самый первый запрос на MSDeploy.axdвсе еще был 404, но следующий запрос получил приглашение входа в систему.
Carl G

3
И если вы, как и я, забывчивы, помните, что вы уже должны были установить службу управления (Добавить / удалить компоненты Windows> Веб-сервер (IIS)> Инструменты управления> Служба управления) до того, как «Обработчик развертывания IIS» станет видимым при изменении Установка Web Deploy 3.5.
Carl G

@DGDev Web Deployment Tool 2.1 является предшественником Web Deploy 3.0
Куэппер,

1
Привет, Карл Джи, твой комментарий был единственной полезной вещью, которую я нашел для решения этой проблемы. Я бы хотел, чтобы это была часть ответа, а не простой комментарий. (Администратор, пожалуйста,
сформулируйте

@CarlG - отличный улов! Я добавил снимок экрана для справки.
SliverNinja - MSFT

69

В Windows 2012 R2 Server я последовал совету mga911.

Я застрял, заставляя работать деплои. Был установлен Web Deploy 3.5 -> Включено делегирование службы управления -> Гарантированные службы были запущены. Проблема заключалась в том, что обработчик развертывания IIS не был установлен. Проходя через Web PI 4.6, мне не дали возможности установить обработчик развертывания IIS. Вам нужно зайти в панель управления -> Программы и компоненты Изменить установку Web Deploy 3.5. Обратите внимание на мои инструкции. В процессе изменения он указывает, что все субпакеты будут установлены, но в текстовом сообщении говорится, что будет установлено 0 из 3 субкомпонентов. Один из этих компонентов - обработчик IIS. Прочтите внимательно, потому что я этого не сделал и был разочарован :)

  • Панель управления> Программы и компоненты
  • Щелкните правой кнопкой мыши Microsoft Web Deploy 3.5.
    • Выберите «Изменить»> нажмите «Далее»> «Изменить».
    • Вы заметите, что когда выбрана платформа веб-развертывания, вы увидите сообщение «Выбрано 0 из 3 подкомпонентов».
    • Щелкните раскрывающийся список и выберите «Вся функция будет установлена ​​на локальном жестком диске».
    • Далее> Изменить> Готово

2
Пробовал этот трюк с Web Deploy 3.6 на Win 2012 R2. Не работала со следующей ошибкой «Ошибка:» Раздел конфигурации «system.webServer / management / delegation» не может быть прочитан, потому что отсутствует схема… Удалено веб-развертывание 3.6 и получено веб-развертывание 3.5 с iis.net / downloads / microsoft / web-deploy Worked.
Sinned Lolwut,

Это мне очень поможет! Спасибо. Win2012 r iis 8
Роберто Гата

18

Я думаю, что одним из важных моментов является то, что вам нужно сначала включить службу управления, а затем установить Web Deploy.

Я сделал наоборот, и это не сработало.

Только переустановив Web deploy, он заработал.


Со мной случилось то же самое. Какой кошмар!
Кристофер Таунсенд

1
Думаю, у большинства людей здесь (включая меня) была такая же проблема, но они не осознавали этого, потому что удаление веб-развертывания, повторная установка и повторный запуск службы управления - это почти то же самое :)
ilter

13

Когда я установил Web Deploy через установщик веб-платформы, обработчик не был выбран. Мне пришлось вручную установить Web Deploy 3.0, нажать «изменить» и затем выбрать обработчик для установки.


12

После нескольких часов поиска решение, приведенное ниже, сработало для меня !!

Control Panel > Программы и компоненты

Щелкните правой кнопкой мыши Microsoft Web Deploy 3.5.

Выберите «Изменить»> нажмите «Далее»> «Изменить».

Вы заметите, что когда выбрана платформа веб-развертывания, вы увидите сообщение

 "It has 0 of 3 subfeatures selected"

Щелкните раскрывающийся список выберите "Entire feature will be installed on local hard drive"

Далее> Изменить> Готово


8

В моем случае при установке пакета web deploy 3.0 через web pi я никогда не получал опцию Management Service Delegation в IIS / home ... его переустановка устранила проблему, тем самым решив Устранена моя ошибка 404.7.

Это было под Microsoft Server 2012 и IIS8

Изменить: я недавно попробовал то же самое в Windows 8 и хотел бы отметить, что на веб-сайте Microsoft указано:

Вы не можете настроить удаленную публикацию с помощью веб-развертывания для сайта, размещенного в IIS в Windows 8.0 или 8.1. Причина в том, что клиентские SKU для Windows не поставляются со службой веб-управления, необходимой для удаленных подключений. В результате в Windows 8.0 или 8.1 значок разрешений диспетчера IIS и параметр развертывания «Настроить веб-развертывание публикации», необходимые для настройки удаленной публикации, недоступны в диспетчере IIS. http://www.iis.net/learn/install/installing-publishing-technologies/installing-and-configuring-web-deploy-on-iis-80-or-later#00

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


3

Вместо использования установщика веб-платформы. Загрузите WebDeploy.exe с веб-сайта и установите его на сервере с опцией «Полный пакет».

Это решит проблему.


1

Кроме того, вам может потребоваться предоставить доступ для службы веб-управления.

У меня также была проблема с Visual Studio (2013), которая не могла обновить приложение на моем сервере (Windows 2012 R2 IIS 8.5). Я добавил компоненты вручную, как описано выше, но это не решило проблему. Потом я нашел эту статью .

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


1

У меня такая же проблема. Я решил это с помощью "Restart-Service wmsvc".


1
Эй, проголосовал за ваш вопрос, так как он, кажется, помогает, так как это ваш первый ответ здесь, было бы здорово, если бы вы могли написать немного больше в следующий раз. Еще несколько слов, полные предложения действительно приветствуются :)
Тим Каденбах,

-1

Используется только windows auth. Веб-развертывание 3.5. И только сертификат WMSVC, который установлен в значке службы управления значка сервера верхнего уровня.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.