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?

hspain
fuente
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)

hspain
fuente
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.

Nikita G.
fuente
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
Cha
fuente
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.

Shubham Gupta
fuente
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

BornToCode
fuente
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.

David Veksler
fuente
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ó.

Kent
fuente
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).

El gato con botas
fuente
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

Sauce
fuente
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

Ryan Burbidge
fuente
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.

usuario1255162
fuente
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.

svl
fuente
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!

usuario11716116
fuente
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

Thomas Bratt
fuente
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!

LarryBud
fuente
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ó.

Wieslaw Olborski
fuente
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

sairfan
fuente
0

Para resolver el problema, intente reparar .NET Framework 4 y luego ejecute el comando

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

ingrese la descripción de la imagen aquí

Nabeel
fuente
1
¿Has leído todas las respuestas publicadas antes de publicar la tuya?
M. Adeel Khalid
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.

Jason Baginski
fuente