Cómo solucionarlo: el controlador “PageHandlerFactory-Integrated” tiene un módulo incorrecto “ManagedPipelineHandler” en su lista de módulos


543

Estoy configurando un proyecto MVC 3 para trabajar en una instalación local de IIS y encontré el siguiente error 500:

El controlador "PageHandlerFactory-Integrated" tiene un módulo incorrecto "ManagedPipelineHandler" en su lista de módulos.

Resulta que esto se debe a que ASP.Net no estaba completamente instalado con IIS a pesar de que marqué esa casilla en el cuadro de diálogo "Agregar función". Para solucionar esto, simplemente ejecuté el siguiente comando en el símbolo del sistema

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

Si hubiera estado en un sistema de 32 bits, habría tenido el siguiente aspecto:

%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i

Mi pregunta es, ¿hay alguna forma de instalar IIS en un cuadro de Windows 7 para usar .NET 4.0 (MVC 3) sin dar este paso adicional?


2
La pregunta realmente resolvió mi problema. Hubiera respondido la pregunta como respuesta si pudiera. :)
Seregwethrin

Sí, la descripción de la pregunta también resolvió mi problema. Gracias :-)
sramsay

Respuestas:


950

Resulta que esto se debe a que ASP.Net no estaba completamente instalado con IIS a pesar de que marqué esa casilla en el cuadro de diálogo "Agregar función". Para solucionar esto, simplemente ejecuté el siguiente comando en el símbolo del sistema

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

Si hubiera estado en un sistema de 32 bits, habría tenido el siguiente aspecto:

%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i

Recuerde ejecutar el símbolo del sistema como administrador ( CTRL+ SHIFT+ ENTER)


Es posible que tenga "Aspnet_regiis.exe no se reconoce como un comando interno o externo, programa operativo o archivo por lotes". error. En este caso, usted es el ejecutable no desde la carpeta .NET 4.0, sino desde la 2.0 (vea mi respuesta a continuación)
Nikita G.

En algunos sitios, leí que necesitábamos ejecutar aspnet_regiis.exe pero ninguno explicó que el parámetro es obligatorio, de lo contrario no sucede nada.
Pimenta

Gran respuesta simple. Sabía que era una mala instalación, no sabía cómo corregirlo.
elcool

Tenga en cuenta que si está utilizando Windows Server 2012, deberá hacerlo a través de Administrar> Agregar roles y características> Características. En mi caso, IIS8 necesitaba tener ASP.NET 4.5 instalado / activado.
Stark

55
recuerde correr como administrador
Reid Evans

17

La respuesta aceptada es correcta, sin embargo, a veces se obtiene que " Aspnet_regiis.exe no se reconoce como un comando interno o externo, programa operativo o archivo por lotes. Mensaje de error".

Para resolverlo intente lo siguiente:

  1. Asegúrese de que su instalación de .NET 4.0 no esté dañada (ejecute el instalador y "Repare"). También existe la posibilidad de que no esté instalado en su máquina en absoluto.

  2. Si está seguro de que no tiene instalado .NET 4.0 y desea ejecutarlo como .NET 2.0, intente esto :

Si aparece el mensaje "Aspnet_regiis.exe no se reconoce como un comando interno o externo, programa o archivo por lotes.", Cambie al directorio C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ -i Aspnet_regiis.exe en el símbolo del sistema.


Aspnet_regiis.exe -i solucionó mi problema en Win Server 2008 IIS7.
VSB

9

Para resolver el problema, intente repair the .net framework 4y luego ejecute el comando

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

9

Error: el controlador "PageHandlerFactory-Integrated" tiene un módulo incorrecto "ManagedPipelineHandler" en su lista de módulos

Encontré los artículos para solucionar este problema simplemente ejecutando los siguientes comandos en el símbolo del sistema:

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

Si el sistema es de 32 bits, se vería así:

%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i

Pero, cuando intenté ejecutar estos comandos usando un símbolo del sistema, recibí el siguiente mensaje de error / advertencia:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS versión 4.0.30319.33440 Utilidad de administración para instalar y desinstalar ASP.NET en la máquina local. Derechos de autor (C) Microsoft Corporation. Todos los derechos reservados. Comience a instalar ASP.NET (4.0.30319.33440). Esta opción no es compatible con esta versión del sistema operativo. Los administradores deben instalar / desinstalar ASP.NET 4.5 con IIS8 utilizando el cuadro de diálogo "Activar / desactivar características de Win Win Dows", la herramienta de administración del Administrador del servidor o la herramienta de línea de comandos dism.exe. Para obtener más detalles, consulte http://go.microsoft.com/fwlin k /? LinkID = 216771. Terminó de instalar ASP.NET (4.0.30319.33440). **

Para solucionar esto en Windows 8.1, sugeriría hacer lo siguiente.

Solución:

Ir a: activar o desactivar las características de Windows -> Servicios de información de Internet -> Servicios de World Wide Web -> Características de desarrollo de aplicaciones -> Habilitar ASP.NET 4.5

Esto debería resolver el problema.


Yo tuve el mismo problema. ¡Gracias! Para mí tuve que habilitar "ASP.NET 4.6".
Jenny O'Reilly

4

También comprobaría lo obvio primero: que el grupo de aplicaciones está configurado en el marco correcto y que su aplicación IIS realmente apunta a la carpeta donde coloca sus archivos


Tan obvio ... pero tan fácil de pasar por alto. ¡Gracias!
Paul Lemke

Este fue el problema para mí. Aparentemente, de alguna manera, desactivé esto o se configuró en "Sin código administrado". Cambiarlo de nuevo a v4.0 hizo que mi sitio se cargara.
redOctober13

3

Si desea implementar una aplicación MVC sin instalar MVC, puede implementar las DLL de MVC con su aplicación . Esto evita la instalación de MVC 3. Puede usar características en algunos espacios de nombres .Net 4.0 sin instalar .Net con un enfoque similar.


44
registrar asp.net con iis no tiene nada que ver con que mvc esté presente o no, sí, puede incluir los dlls requeridos en su carpeta bin, pero si iis no reconoce los archivos asp no hay mucho que los dlls puedan hacer
Shekhar

3

Agregué las rutas ISAPI / CGI para .Net 4. Lo que no solucionó el problema. Entonces ejecuté una reparación en la instalación de .Net V4 (cliente y extendido). Que pidió un reinicio. Esto me lo arregló.


2

Para solucionar esto en una máquina Windows 8.1 Professional , haga lo siguiente.

  1. Instale el instalador de plataforma web. http://www.microsoft.com/web/downloads/platform.aspx

  2. En el Instalador de plataforma web, instale ASP.NET 4.5 (esta característica tiene una dependencia).

Si simplemente prueba el comando cmd prompt antes mencionado de la respuesta más popular, recibirá el siguiente mensaje de error / advertencia:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS versión 4.0.30319.33440 Utilidad de administración para instalar y desinstalar ASP.NET en la máquina local. Derechos de autor (C) Microsoft Corporation. Todos los derechos reservados. Comience a instalar ASP.NET (4.0.30319.33440). Esta opción no es compatible con esta versión del sistema operativo . En su lugar, los administradores deben instalar / desinstalar ASP.NET 4.5 con IIS8 utilizando el cuadro de diálogo "Activar / desactivar las características de Win Win Dows", la herramienta de administración del Administrador del servidor o la herramienta de línea de comandos dism.e xe. Para obtener más detalles, consulte http://go.microsoft.com/fwlin k /? LinkID = 216771. Terminó de instalar ASP.NET (4.0.30319.33440).


2

Intenté hacer aspnet_regiis en el símbolo del sistema pero recibí una respuesta de que no tengo derechos de administrador. Luego, después de buscar más en Google y buscar una solución, intenté hacer clic derecho en cmd y ejecutarlo como administrador. Confirmó que sí cuando apareció el diálogo, ejecuté aspnet_iis nuevamente y funcionó de maravilla. En resumen: 1. compruebe .NET framework en app_pool 2. ejecute cmd como administrador 3. ejecute aspnet_regiis -i


2

Tuve el mismo problema y mi solución fue:

Vaya a "Activar o desactivar las características de Windows"> Servicios de Internet Information Server> Servicios de World Wide Web> Características de desarrollo de aplicaciones> Habilitar ASP.NET 4.5


Esto funciona de maravilla, pero ¿hay alguna razón por la que no quisiera hacer esto en un servidor de producción, dado que es una "Función de desarrollo de aplicaciones"?
Philip Stratford

No sé lo suficiente sobre esa característica para comentar sobre su uso en un entorno de producción. Sin embargo, encontré este enlace que podría ser útil technet.microsoft.com/en-us/library/hh831475.aspx . También contiene un comando que puede usar para instalar módulos IIS y ASP.NET mediante el símbolo del sistema, que podría ser más adecuado para sus necesidades de producción.
Ryan Burbidge

1

Tuve un problema similar con Windows Server 2012, la instalación de la función " Servidor de aplicaciones " en el administrador del servidor solucionó el problema.


1

-Utilizando la característica de inicialización de la aplicación -solicitando páginas incorrectas (.asp) debido a la herencia de configuración

500.21 ocurrirá solo en la primera conexión de usuario. Las conexiones posteriores funcionan.

Se resolvió corrigiendo la colección de URL de inicialización de la aplicación en el sitio web de .NET.


1
  1. correr cmd

  2. arrastre y suelte Aspnet_regiis.exeen el símbolo del sistema desde:

    C:\Windows\Microsoft.NET\Framework64\v2.0.50727\
  3. tipo -i(por ejemplo Aspnet_regiis.exe -i)

  4. Presione enter

  5. espera hasta que el proceso se complete

¡Buena suerte!


0

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

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


0

Ninguno de estos funcionó para mí. Entonces, al comparar varios grupos de aplicaciones con uno que funcionó frente a uno que no funcionó, tuve que ir a Configuración avanzada para el Grupo de aplicaciones y establecer

Habilitar aplicaciones de 32 bits = verdadero

Entonces funcionó bien!


0

Tuve el mismo problema, en mi caso, el controlador estaba en dos lugares:

<system.web>
...
<httpHandlers>
 <add verb="*" path="*.ashx" type="ApplicArt.Extranet2.Controller.FrontController, ApplicArt.Extranet2.Web.UI" />
  </httpHandlers>
</system.web>

<system.webServer>
<handlers>
   ...
  <add name="FrontController" verb="*" path="*.ashx" type="ApplicArt.Extranet2.Controller.FrontController, ApplicArt.Extranet2.Web.UI"/>
</handlers>
</system.webServer>

Y cuando eliminé mi controlador de [system.webServer] mi problema desapareció.


0

en algunos casos, este error se produce porque la configuración de Microsoft .NET Framework 4.0 para ASP .NET se ha dañado, lo que puede ocurrir si Microsoft Visual Studio 2012 se instaló antes de Visual Studio 2010 o Microsoft SQL Server 2008.

Después de probar cosas diferentes, llegué a la conclusión, repare su instalación .Net ejecutando el siguiente comando. Para más información sigue el enlace.

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SetupCache\v4.5.51209\setup.exe /repair /x86 /x64 /ia64 /norestart

https://msdn.microsoft.com/en-us/library/hh168535(v=nav.80).aspx



0

Estaba teniendo este problema en uno de mis servidores web cuando intentaba cambiar un grupo de aplicaciones de clásico a integrado. Funcionó bien en dos de mis otros servidores web, no solo en este. Es Server 2012, por lo que no puede hacer aspnet_regiis y no había una carpeta setupcache para intentar esa reparación. Todo se configuró correctamente en las características.

Después de pasar por% windir% \ system32 \ inetsrv \ config \ applicationHost.config, encontré un bit crítico que faltaba. Debajo de mi que no funcionaba, faltaban las siguientes dos líneas:

        <add name="ManagedEngineV4.0_32bit" image="C:\Windows\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
        <add name="ManagedEngineV4.0_64bit" image="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />

Una vez que los agregué, todo funcionó muy bien.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.