Obtener un 404 de WMSvc a través de MSDeploy.exe

121

Desde Windows 8 a Windows Server 2012 (IIS 8) con Servicios de administración web instalados y en funcionamiento, puedo usar el Administrador IIS en el cuadro W8 para administrar el servidor remoto, pero obtengo un 404.7 de WMSvc cuando ejecuto el siguiente comando:

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

He intentado todo tipo de combinaciones y parámetros. Puedo telnet a ese puerto, sé que está abierto.

Solo estoy eliminando la función del Servicio de administración de Windows y reiniciando. Me serviré un whisky y prepararé algunos bocadillos. Mientras tanto, si tienes alguna idea, compártela.

Únete a mi blog en vivo a continuación y sigue la acción.

Actualización 1

Con el servicio de administración eliminado, ahora obtengo

Error: no se puede conectar al servidor remoto Error: no se pudo establecer la conexión porque la máquina de destino lo rechazó activamente 192.168.2.22:8172 Recuento de errores: 1.

Donde la segunda línea es un nuevo mensaje! Woohoo

Actualización 2

Bien, entonces las cosas van de mal en peor ahora. Desde la reinstalación, la consola remota de IIS alertará sobre el certificado y luego dirá:

El servidor no acepta conexiones remotas.

Pero creo que esto se debe a que probablemente no volví a habilitar Remote Management, además de instalar la maldita cosa.

Actualización 3

Con Remote Management habilitado, el IIS remoto funciona nuevamente pero el 404 ha regresado. Solo en interés del SEO, aquí está el error completo:

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.

Actualización 4

¡Intenté el mismo comando contra otro servidor web a través de una VPN a un cliente y eso funciona de maravilla! Parece que IIS está publicado en mi nueva versión de 2012.

Actualización 5

Habilité el seguimiento de solicitudes fallidas para WMSvc y he visto que el 404.7 proviene del módulo RequestFilteringModule. 404.7 es 'Extensión de archivo denegada' según la documentación.

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

Sin embargo, agregar una regla de servidor explícita para archivos .axd no ayuda. Sin embargo, es interesante ver este módulo, ya que impone restricciones en la longitud de la URL y el tamaño del contenido. ¿Te imaginas solucionar este problema en una aplicación WCF alojada en IIS! Jaja. Estoy llorando de verdad.

Actualización 6

Estoy eliminando el filtro de solicitudes, lo que significa eliminar ASP.NET y varias otras cosas también. Necesitan una reinstalación de las características y dependencias de Windows Todo en un solo golpe porque escribimos una opción de software no confiable.

Actualización 7

Reinstalo todo y luego aparece un australiano llamado Richard de la nada y explica totalmente que Web Deploy no es realmente una parte de WMSvc como estándar, incluso en IIS 8, y que necesito instalar Web Deploy.

Así que hago. Luego deshabilito MsDepSvc, que es la otra parte que instala (que pensé que era la totalidad de Web Deploy) porque succiona el puerto 80 y evita que los equilibradores de carga vean un servicio IIS caído.

Y funciona. Puedo ir a la cama

Luke Puplett
fuente
24
+1 para la contraseña hilarante
Michael12345
44
¿Cuánta productividad estamos perdiendo todos por este desastre? Me encuentro con un problema similar pero me encuentro con un caso en el que IIS se bloquea al buscar nombres de usuario.
ATL_DEV
66
En Windows 2012, fue un pedido de instalación para mí, primero tuve que instalar la función del Servicio de administración web, luego instalar web deploy 3.5.
JustEngland
1
¡Instalar la implementación web no es suficiente! Tenía instalado el despliegue web, fue lo primero que hice. Tuve que ir para agregar / quitar programas y cambiar la configuración de instalación para incluir el controlador. Deseo amor, felicidad y prosperidad al desarrollador de MS que pensó que era un defecto razonable no incluir el controlador que permite que el servicio haga su trabajo.
nurettin
Tuve todo tipo de problemas al intentar que Web Deploy 3.6 funcionara, así que seguí el comentario de Sinned Lolwut y desinstalé 3.6, e instalé 3.5 en su lugar, funcionó primero. Utilicé el Instalador de plataforma web ( microsoft.com/web/downloads/platform.aspx ) para instalar Web Deploy 3.5. Luego reinicié el Servicio de administración web y pude validar la conexión en el perfil Visual Studio Web Deploy. (Hubiera respondido en un comentario anterior pero todavía no tengo suficiente reputación).
Bob número 2

Respuestas:

86

¿Has instalado Web Deploy en el servidor? Web Deploy registra un controlador (/msdeploy.axd) con WMSVC, por lo que un 404 sería el código de estado esperado si no estuviera instalado.

Richard Szalay
fuente
2
No, no lo he hecho. ¡No sabía que lo necesitaba! ¿Pensé que todo el despliegue era parte de WMSvc? Dios mío, creo que tienes razón, son tan estúpidos. Recientemente he estado tan confundido con todo esto y pensé que Web Deploy lo que instaló fue solo el agente, para las empresas de alojamiento y similares. Vea mi otra pregunta stackoverflow.com/questions/13602502/…
Luke Puplett
2
WMSVC es para configurar IIS de forma remota. MSDeploy se creó mucho después, por lo que no se puede integrar en el núcleo. Si no es posible instalar MSDeploy, puede usar un agente temporal que instalará un controlador durante la implementación (obviamente necesitará acceso de administrador).
Richard Szalay
16
Tuve que desinstalar Web Deploy 3 y luego reinstalarlo nuevamente para que funcione. De alguna manera, mi IIS8 estaba en mal estado.
Rosdi Kasim
30
El mismo problema, simplemente ingresé al Panel de control y cambié la instalación de "Implementación web" para incluir el controlador. ¡Reinicié el servicio WMSVC y todo estuvo bien!
Matt Woodward
13
Si instaló Web Deploy antes de instalar el Servicio de administración web, deberá seguir los procedimientos descritos anteriormente
Matt Baker,
180

En caso de que alguien tenga los mismos problemas que yo, también recibí el mismo error 404. La forma más rápida que encontré para comprobar fue ir al servidor y abrir "https: // <servername>: 8172 / MsDeploy.axd". Chrome y Firefox acaban de mostrar una página en blanco, así que tuve que usar la pestaña Red de las herramientas del desarrollador (F12) para ver el mensaje de error 404 real.

De alguna manera, mientras instalaba Web Deploy 3.0 desde el Instalador de plataforma web, el Controlador de implementación de IIS 7 no se instaló, aunque sí lo hizo el Módulo de IU del Administrador de IIS. En mi caso, descargué el archivo .msi de instalación de la herramienta de implementación web desde el siguiente enlace: Instalación de la herramienta de implementación web . Luego tuve que volver a la herramienta de administración de IIS (Inicio -> Ejecutar -> inetmgr.exe)> {nombre del servidor}> hacer clic en el icono del Servicio de administración y reiniciar el servicio de administración antes de que el controlador MsDeploy.axd comenzara a funcionar.

Habilitación de IIS Deployment Handler + Remote Agent Service

ingrese la descripción de la imagen aquí

VeeTheSecond
fuente
98
Pude ir al Panel de control> Programas y características. Haga clic derecho en "Microsoft Web Deploy 3.5" y seleccione "Cambiar". Desde el instalador, seleccione "Cambiar" y "IIS Deployment Handler" estaba disponible como una opción (se deshabilitó al principio. También "Configurar para implementaciones que no sean de administrador" y "Gestión de la interfaz de usuario de delegación de servicio" fueron opciones adicionales). Mi primera solicitud para MSDeploy.axdtodavía tenía el 404 pero la siguiente solicitud recibió un mensaje de inicio de sesión.
Carl G
3
Y si usted es olvidadizo como yo, recuerde que ya debe haber instalado el Servicio de administración (Agregar / quitar características de Windows> Servidor web (IIS)> Herramientas de administración> Servicio de administración) antes de que el "Controlador de implementación de IIS" sea visible al cambiar el Instalación de Web Deploy 3.5.
Carl G
@DGDev Web Deployment Tool 2.1 es el precursor de Web Deploy 3.0
Kuepper
1
Hola Carl G, tu comentario fue lo único útil que encontré para este problema. Ojalá pudiera ser parte de la respuesta en lugar de un simple comentario aquí. (Administrador, por favor, póngalo como respuesta correcta si es posible)
mohghaderi
@CarlG: ¡excelente captura! Agregué una captura de pantalla para referencia.
SliverNinja - MSFT
69

En Windows 2012 R2 Server seguí los consejos de mga911.

Estaba atascado haciendo que las implementaciones funcionen. Había instalado Web Deploy 3.5 -> Habilitó la Delegación del Servicio de Administración -> Los Servicios Garantizados se iniciaron. El problema era que el controlador de implementación de IIS no se había instalado. Al pasar por Web PI 4.6 no tuve la oportunidad de instalar el controlador de implementación de IIS. Debe ir al panel de control -> Programas y características Cambiar la instalación de Web Deploy 3.5. Por favor, tenga en cuenta mis instrucciones. En el proceso de cambio, indica que se instalarán todos los subpaquetes, pero el mensaje de texto dice que se instalarán 0 de 3 subcomponentes. Uno de esos componentes es el controlador IIS. Lee atentamente porque no lo hice y estaba frustrado :)

  • Panel de control> Programas y características
  • Haga clic derecho en Microsoft Web Deploy 3.5
    • Seleccione Cambiar> haga clic en siguiente> haga clic en cambiar
    • Notarás que cuando se selecciona Web Deployment Framework, verás en el mensaje "Tiene 0 de 3 subcaracterísticas seleccionadas"
    • Haga clic en el menú desplegable, seleccione "Toda la función se instalará en el disco duro local"
    • Siguiente> Cambiar> Finalizar
muglio
fuente
2
Probé este truco con Web Deploy 3.6 en Win 2012 R2. No funcionó con el siguiente error "Error:" La sección de configuración 'system.webServer / management / delegación' no se puede leer porque le falta el esquema "... Desinstalé Web Deploy 3.6 y saqué Web Deploy 3.5 de iis.net / downloads / microsoft / web-deploy Worked.
Sinned Lolwut
Esto me ayuda mucho! Gracias. Win2012 r iis 8
Roberto Gata
18

Creo que un punto importante es que primero debe activar el servicio de administración y luego instalar Web Deploy.

Lo hice al revés y no funcionó.

Solo al reinstalar la implementación web comenzó a funcionar.

haymansfield
fuente
A mi me pasó lo mismo. ¡Qué pesadilla!
Christopher Townsend
1
Supongo que la mayoría de las personas aquí (incluido yo) tuvimos el mismo problema, pero no se dieron cuenta porque desinstalar la implementación web, reinstalarlo nuevamente y luego reiniciar el Servicio de administración es más o menos lo mismo :)
ilter
13

Cuando instalé Web Deploy a través del instalador de la plataforma web, no se seleccionó el controlador. Tuve que instalar manualmente Web Deploy 3.0, hacer clic en "cambiar" y luego seleccionar el controlador que se instalará.

mga911
fuente
12

¡Después de horas de búsqueda, hacer su solución a continuación funcionó para mí!

Control Panel > Programas y características

Haga clic derecho en Microsoft Web Deploy 3.5

Seleccione Cambiar> haga clic en siguiente> haga clic en cambiar

Notará que cuando se selecciona el Marco de implementación web, verá en el mensaje

 "It has 0 of 3 subfeatures selected"

Haga clic en desplegable seleccione "Entire feature will be installed on local hard drive"

Siguiente> Cambiar> Finalizar

Laurent
fuente
8

En mi caso, cuando instalé el paquete web deploy 3.0 a través de web pi, nunca obtuve la opción de Delegación del Servicio de Administración en IIS / home. Sin embargo, reinstalarlo solucionó el problema, resolviendo así mi error 404.7.

Esto fue bajo Microsoft Server 2012 e IIS8

Editar: Hace poco probé lo mismo en Windows 8 y me gustaría señalar que el sitio web de Microsoft dice:

No puede configurar la publicación remota mediante Web Deploy para un sitio alojado en IIS en Windows 8.0 u 8.1. La razón es que las SKU del cliente para Windows no vienen con el Servicio de administración web que se requiere para las conexiones remotas. Como resultado, en Windows 8.0 u 8.1, el icono de Permisos del Administrador de IIS y la opción de implementación Configurar publicación de implementación web que se requieren para configurar la publicación remota no están disponibles en el Administrador de IIS.http://www.iis.net/learn/install/installing-publishing-technologies/installing-and-configuring-web-deploy-on-iis-80-or-later#00

(Sí, me doy cuenta de que el objetivo es el Servidor 2012 en la pregunta, pero esto podría salvar a muchas personas de tener el mismo dolor de cabeza que yo, ya que esto funcionó bien en mi vieja máquina de desarrollo que quería que la gente supiera).

Cripta
fuente
3

En lugar de usar el Instalador de plataforma web. Descargue WebDeploy.exe del sitio web e instálelo en el servidor con la opción Paquete completo.

Solucionará el problema.

FAHID
fuente
1

Además, es posible que deba otorgar acceso al Servicio de administración web

También tuve el problema de que Visual Studio (2013) no podía actualizar la aplicación en mi servidor (Windows 2012 R2 IIS 8.5). Agregué los componentes manualmente como se describió anteriormente, pero eso no resolvió el problema. Entonces encontré este artículo .

Básicamente dice que el servicio de administración web está conectado como servicio local que no tiene derechos de acceso al directorio Inetpub. Otorgar permisos para el Servicio local me resolvió el problema.

Capitán Dashenka
fuente
1

Tengo el mismo problema. Resolví esto mediante "Reiniciar-Servicio wmsvc".

Evgeny Ponamarev
fuente
1
Oye, voté tu pregunta porque parece ayudar, ya que esta es tu primera respuesta aquí, sería genial si pudieras escribir un poquito más la próxima vez. Solo unas pocas palabras más, las oraciones completas son realmente apreciadas :)
Tim Cadenbach
-1

Solo se usa la autenticación de Windows. Implementación web 3.5. Y solo el certificado WMSVC que se establece en el ícono del Servicio de administración del ícono del servidor de nivel superior.

Pat Capozzi
fuente