Handler "ExtensionlessUrlHandler-Integrated-4.0" tiene un mal módulo "ManagedPipelineHandler" en su lista de módulos


Para ser honesto, he tratado de convertir un truco sucio en IIS y justo cuando pensé que iba a salirme con la mía, me di cuenta de que mi solución no funciona. Esto es lo que he intentado hacer:

1) Tengo ASP.NET aplicación que tiene la clase Preloader que hereda IProcessHostPreloadClient y hace toda la inicialización pesada en la implementación del método Preload (la aplicación es compleja y es parte de un sistema enorme, por lo que requiere aproximadamente 2 minutos para establecer conexiones con todos los servicios necesarios y pre-instanciar algunos registros de Unity).

2) Tengo un montón de trabajo que debe hacerse en el apagado de la aplicación (darse de baja, desconectar, disponer,...), y supongo que el mejor lugar para hacerlo es en el método *Application_End * ubicado en Global.asax .

3) Todo funciona bien cuando tengo actividad de usuario (la primera solicitud después del Grupo de aplicaciones que contiene la aplicación web mencionada es iniciado causará que se llame a* Application_Start * y luego se llame a* Application_End * al detener o reciclar el grupo de aplicaciones), pero los problemas ocurren cuando no hay actividad del usuario y la aplicación intenta reiniciarse después de estar activa durante 48 horas (requisito configurado). Como no hubo solicitudes, la solicitud oficialmente no comenzó. Ergo, no se puede detener con gracia ya que * Application_End* no se llamará.

4) Ahora viene la parte desordenada... He tratado de hacer un GET request from code al final del método Preload, y funcionó. Pero esta solución me pareció mala, aunque funcionó. Por lo tanto, he intentado muchas cosas, y la última cosa que intenté fue esto:

SimpleWorkerRequest swr = new SimpleWorkerRequest(string.Empty, string.Empty, tw);
HttpRuntime.ProcessRequest(swr);

... y eso ha hecho su propósito. * Application_Start * fue llamado, (he comprobado la respuesta, que contenía la página de inicio de sesión que se suponía que se mostraría en la solicitud inicial) y en el cierre del grupo de aplicaciones la aplicación terminó correctamente haciendo el trabajo necesario en * Application_End*.

PERO

Después de que la aplicación se inició (precargado e iniciado) de esta manera, esto es lo que sucedió cuando quería llegar a la aplicación a través del navegador web:

Error HTTP 500.21-Error Interno del Servidor Handler "ExtensionlessUrlHandler-Integrated-4.0" tiene un mal módulo "ManagedPipelineHandler" en su lista de módulos

No puedo resolver esto. ¿Alguien puede decirme por qué sucede esto y cómo solucionarlo?

Si No entiendo esto, volveré a la primera solución (enviando una solicitud GET desde el código), pero este problema me molestará ya que ni siquiera tengo una idea de lo que está mal.

Author: Ivan Peric, 2012-10-31

21 answers

El problema

Está utilizando SimpleWorkerRequest en un escenario para el que no fue diseñado. Lo estás usando dentro de IIS. Si nos fijamos en el enlace MSDN anterior (el énfasis es mío):

Proporciona una implementación simple de la clase abstracta HttpWorkerRequest que se puede usar para alojar ASP.NET aplicaciones fuera de una aplicación de Internet Information Services (IIS) . Puede emplear SimpleWorkerRequest directamente o extender se.

También, si nos fijamos en la documentación de MSDN para el sistema .Web.Espacio de nombres de alojamiento (SimpleWorkerRequest es en este espacio de nombres), también verá algo similar a lo anterior (de nuevo, el énfasis es mío):

El Sistema.Web.Hosting namespace proporciona la funcionalidad para hosting ASP.NET aplicaciones de aplicaciones administradas fuera de Microsoft Internet Information Services (IIS) .

La solución

Yo recomendaría eliminando la llamada a SimpleWorkerRequest. En su lugar, puede usar una solución de Microsoft para asegurarse de que su sitio web se inicie automáticamente después de que se recicle. Lo que necesita es el Módulo de inicialización de aplicaciones de Microsoft para IIS 7.5. No es complicado de configurar, pero necesita entender las opciones exactas. Es por eso que también recomendaría la Interfaz de usuario de inicialización de la aplicación para IIS 7.5. La interfaz de usuario está escrita por un blogger de MSDN.

Entonces, ¿qué hace exactamente la solución de Microsoft hacer? Hace lo que está tratando de hacer: IIS envía una solicitud "get" a su sitio web después de que se inicie el grupo de aplicaciones.

 20
Author: chue x,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-14 16:38:27

Intenta volver a registrarte ASP.NET por aspnet_regiis -i. Funcionó para mí.

Una ruta probable para. NET 4 (desde el símbolo del sistema con privilegios elevados):

c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

Http://forums.iis.net/p/1190643/2026401.aspx

 624
Author: danijelk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-24 19:29:53

Si se encuentra con este error con Windows 8/Windows Server 2012 y. Net 4.5, siga estas instrucciones aquí: http://www.britishdeveloper.co.uk/2013/01/handler-extensionlessurlhandler.html

Vaya a "activar o desactivar las características de Windows" Entonces Internet Information Services Entonces World Wide Web Services Luego Características de Desarrollo de Aplicaciones Y luego habilitar ASP.NET 4,5

Esto funcionó para mí (aunque el asistente y la redacción son un poco diferentes en Windows Servidor 2012, pero lo descubrirás). Dicho esto, por qué esto es necesario después de instalar todo a través del Instalador de la plataforma Web, incluidas todas las dependencias, está completamente fuera de mí...

 149
Author: Zach,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-05 20:20:39

A pesar de seguir gran parte de los consejos en esta página, todavía estaba recibiendo problemas en Windows Server 2012. La instalación de. NET Extensibility 4.5 (Agregar roles y características > Roles de servidor > Servidor Web (IIS) > Servidor Web > Desarrollo de aplicaciones>. NET Extensibility 4.5) lo resolvió para mí.

 45
Author: Jonathan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-10-03 21:03:21

Ejecute uno de estos comandos :

Para el sistema operativo Windows de 32 Bits:

c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

Para el sistema operativo Windows de 64 Bits:

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -I
 37
Author: user3896335,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-31 12:02:47

Esto https://stackoverflow.com/a/13266763/1277458 funciona perfectamente. Pero si tiene un sistema operativo de 64 bits, use Framework64 en lugar de Framework en path:

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
 25
Author: Neshta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:54:59

Para Windows 10 / Windows Server 2016 utilice el siguiente comando:

dism /online /enable-feature /featurename:IIS-ASPNET45 /all

Las respuestas sugeridas con aspnet_regiis no funcionan en Windows 10 (Creators Update y posteriores) o Windows Server 2016:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
Microsoft (R) ASP.NET RegIIS versión 4.0.30319.0
Utilidad de administración para instalar y desinstalar ASP.NET en la máquina local.
Copyright (C) Microsoft Corporation. Todos los derechos reservados.
Iniciar la instalación ASP.NET (4.0.30319.0).
Esta opción no se admite en esta versión del sistema operativo. Los administradores deben instalar / desinstalar ASP.NET 4.5 con IIS8 usando el diálogo "Activar/Desactivar Características de Windows", la herramienta de administración del Administrador del Servidor o el dism.herramienta de línea de comandos exe. Para más detalles, consulte http://go.microsoft.com/fwlink/?LinkID=216771 .
Instalación terminada ASP.NET (4.0.30319.0).

Curiosamente, el diálogo "Activar/Desactivar las características de Windows" no me permitió desmarcar. NET ni ASP.NET 4.6, y solo el comando DISM anterior funcionó. No estoy seguro de si el featurename es correcto, pero funcionó para mí.

 25
Author: Bart Verkoeijen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-01 08:20:04

En mi caso (Windows 10 + IIS 10) tuve que abrir " Activar o Desactivar las características de Windows " y luego ir a Servicios de Información de Internet > Servicios de World Wide Web > Características de Desarrollo de aplicaciones > y comprobar ASP.NET 4.6

 12
Author: Xaris Fytrakis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-09 21:35:35

Haciendo de esto su propio post porque esto me tuvo durante horas.

Vi tal vez una docena de publicaciones similares aquí y en otros lugares sobre este problema y la solución aspnet_regiis. No estaban trabajando para mí, y aspnet_regiis estaba actuando extraño, solo enumerando opciones, etc.

Como el usuario ryan-anderson indicó anteriormente, no puede ingresar .exe

Para aquellos menos cómodos con cosas fuera de IIS en el servidor, esto es lo que debe hacer en sencillos pasos.

  1. Buscar aspnet_regiis en a carpeta similar a esta ruta. c:\Windows\Microsoft.NET\Framework\v4.0.30319\

  2. Haga clic con el botón derecho en símbolo del sistema en el menú inicio o en cualquier lugar y dígale que se ejecute como administrador. Usar la función "Ejecutar" de Windows simplemente no funcionará, o no lo hizo para mí.

  3. Vuelve al ejecutable aspnet_regiis. Haga clic y arrástrelo a la derecha en el símbolo del sistema o copie y pegue la dirección en el símbolo del sistema.

  4. Quitar, si está allí, el .exe al final. Esto es clave. Añadir el-i (espacio menos ojo) al final. Entrar.

Si lo hizo correctamente, verá que comienza a instalarse asp.net y luego te dice que tuvo éxito.

 5
Author: shubniggurath,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-10 15:17:33

Sé que esto es un viejo, pero pensé que podría agregar algo de valor. Para aquellos de nosotros que ejecutamos Server Core fuera de un dominio (los miembros del dominio solo pueden ejecutar el Administrador del servidor de forma remota para agregar/eliminar características/roles), debe recurrir a las líneas de comandos.

Los usuarios de Powershell pueden escribir "Install-WindowsFeature Web-Asp-Net45"

Eso debería ser equivalente a usar el administrador del servidor.

 4
Author: jwdaigle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-19 09:43:36

Asegúrese de haber establecido su application-site versión de v2.0 a v4.0 en Administrador de IIS :

Grupos de aplicaciones > Su aplicación > Configuración avanzada > Versión de. NET Framework

Después de eso, instale su ASP.NET.

Para el sistema operativo de 32 bits (Windows):

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

Para el sistema operativo de 64 bits (Windows):

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

Reinicie su application-site en el administrador de IIS y disfrute.

 2
Author: Arsman Ahmad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-31 12:25:51

Fui desafiado por el mismo mensaje de error, con.net 4.7 instalado.

La solución fue seguir una publicación mencionada anteriormente para ir con la "Activar o desactivar la función de Windows", donde el". NET Framework 4.7 Advanced Services " > > "ASP.NET 4.7" ya fue comprobado.

Más abajo en la lista, están los "Servicios de Información de Internet" y la subnota "Características de Desarrollo de aplicaciones" > > "ASP.NET 4.7", que también debe ser comprobado.

Al habilitar esto, asignar otras características están habilitadas... Simplemente presioné el botón Ok, y el problema se resolvió. Salto de pantalla del diálogo de características de windows

 2
Author: theodor.johannesen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-14 15:10:48

Tuve este problema y descubrí que eliminar la siguiente carpeta ayudó, incluso con la edición no Express.Express:

C:\Users\<user>\Documents\IISExpress

 1
Author: Thomas Bratt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-15 12:13:31

Este error comenzó a ocurrirme de la nada la semana pasada, afectando a los sitios web existentes en mi máquina. No tuve suerte con él tratando cualquiera de las sugerencias aquí. Eventualmente eliminé WebDAV de IIS completamente (Características de Windows -> Servicios de Información de Internet -> Servicios de World Wide Web -> Características HTTP comunes -> Publicación de WebDAV). Hice un reinicio de IIS después de esto por una buena medida, y mi error finalmente se resolvió.

Solo puedo adivinar que una actualización de Windows inició el problema, pero no puedo estar seguro.

 1
Author: pirsqua,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-30 20:33:36

Estoy trabajando en Windows Server 2012. La función. NET Extensibility 4.5 está activada. WebDAVModule eliminado. Todavía estaba recibiendo 500.21 error en ASP.NET ruta '/ docs'.

Cambiar 'skipManagedModules' a false solucionó el problema.

<applicationInitialization doAppInitAfterRestart="true" skipManagedModules="false">
        <add initializationPage="/docs" />    
</applicationInitialization>

Gracias a https://groups.google.com/forum/#! topic / bonobo-git-server / GbdMXdDO4tI

 1
Author: shemanov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-20 09:42:35

Puede arreglarlo cambiando el tipo "ExtensionlessUrlHandler-Integrated-4.0" en iis a System.Web.DefaultHttpHandler

 0
Author: user3661608,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-21 15:53:50

Para mí, la eliminación de WebDAV de mi servidor causó que la aplicación devolviera un mensaje de error 503 Service Unavailable al usar PUT o DELETE, por lo que lo reinstalé de nuevo. También intenté eliminar completamente. NET Framework 4.5 y reinstalarlo y también intenté volver a registrarme como se sugirió, pero fue en vano.

Pude arreglar esto deshabilitando WebDAV para el grupo de aplicaciones individual, esto detuvo el error 'módulo defectuoso' al usar PUT o DELETE.

Desactivar WebDAV para Piscina de Aplicaciones Individuales:

  1. Haga clic en el grupo de aplicaciones afectado
  2. Buscar WebDAV Authoring Tools en la lista
  3. haga Clic para abrirlo
  4. Haga clic en Disable WebDAV en la parte superior derecha.

Ta daaaa!

Todavía dejé los elementos eliminar en mi archivo web.config.

 <system.webServer>
    <modules>
      <remove name="WebDAVModule"/>
    </modules>
    <handlers>
      <remove name="WebDAV" />
    </handlers>
 <system.webServer>

Este enlace es donde encontré las instrucciones, pero no está muy claro.

 0
Author: Luke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-18 10:39:28

Esto tal vez no sea una solución útil para OP, pero se refiere al mismo mensaje de "error".

Estamos alojando páginas PHP en IIS8.5 con.NET 4.5 instalado correctamente.

Hacemos uso de la funcionalidad de precarga para asegurarnos de que nuestra aplicación siempre responda en todos los ámbitos.

Después de un tiempo empezamos a obtener este error al azar.

En la web.config: Puse skipManagedModules a true, - > ¡no hagas esto!

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
<applicationInitialization skipManagedModules="false" doAppInitAfterRestart="true">
  <add initializationPage="/" />
</applicationInitialization>
...

Aunque el sitio web es php, el enrutamiento a la paginación es administrada por los módulos!!!

 0
Author: Schwarzie2478,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-26 14:54:49

También me encontré con ese problema. Mi aplicación MVC4 se está ejecutando en un Windows Server 2012 R2 con IIS 8.5. Ninguna de estas soluciones publicadas funcionó para mí...instalar los frameworks faltantes a través de IIS Features podría haberlo resuelto, pero la instalación siempre falló.

Tuve que usar el Web Platform Installer e instalé los siguientes paquetes:

introduzca la descripción de la imagen aquí

 0
Author: Frank,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-07 12:00:09

Me enfrentaba a este problema en una aplicación web alojada en un servidor de alojamiento compartido. Así que obviamente no tenía acceso directo a IIS, por lo que no podía aplicar muchas de las soluciones propuestas aquí.

En el panel de control del proveedor de alojamiento habilité el registro de errores para IIS y ASP.Net. Y luego llegó a saber que el error realmente mintió en un cshtml faltante.

 0
Author: Dipendu Paul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-05 14:19:45

Resolví este problema, agregando " Activar o desactivar las características de Windows" La opción ASP.NET 4.7

 0
Author: Edgar Chivichon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-22 01:09:37