500.21 Módulo incorrecto "ManagedPipelineHandler" en su lista de módulos

83

Obtengo el error:

Error HTTP 500.21 - El controlador de errores del servidor interno "CloudConnectHandler" tiene un módulo incorrecto "ManagedPipelineHandler" en su lista de módulos

mi archivo web.config se ve así:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="CloudConnectHandler" verb="*" path="CloudConnect.aspx" type="CloudConnectHandler" resourceType="Unspecified" />
    </handlers>
  </system.webServer>
  <system.web>
    <customErrors mode="Off" />
    <compilation debug="true" targetFramework="4.0" batch="false">
      <assemblies>
        <add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
      </assemblies>
    </compilation>
    <pages>
      <controls>
        <add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" />
      </controls>
    </pages>
        <identity impersonate="true" />
        <authentication mode="Forms" />
  </system.web>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
        <providerOption name="CompilerVersion" value="v4.0" />
        <providerOption name="WarnAsError" value="false" />
      </compiler>
    </compilers>
  </system.codedom>
  <appSettings>
    <add key="CloudConnectAuthorization" value="xxxx" />
    <add key="ConnectionInfo" value="xxxx" />
    <add key="ConnectionString" value="xxxx" />
    <add key="DefaultChannel" value="xxxx" />
    <add key="LoginValidationConnectionString" value="xxxx" />
  </appSettings>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="protobuf-net" publicKeyToken="257b51d87d2e4d67" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.0.0.640" newVersion="2.0.0.640" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Hay muchos consejos que indican que asp.net no está instalado correctamente. La solución habitual es ejecutar:

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

o

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

He ejecutado ambos, sin ningún error. He reiniciado IIS, pero el problema persiste. El sitio utiliza un grupo de aplicaciones. Se inicia el grupo de aplicaciones, .net framework = 4.0, Managed Pipeline = Classic, Identity = LocalSystem.

He pasado las últimas dos horas tratando de averiguar cuál es el problema. Espero que alguien pueda ayudar.

George Mastros
fuente

Respuestas:

18

Intente cambiar al modo integrado. Vea el siguiente hilo:

IIS 7, HttpHandler y HTTP Error 500.21

Radomir Zaric
fuente
Lo había cambiado a integrado, lo que provocó un error diferente. Una vez que lo arreglé, todo comenzó a funcionar correctamente. Gracias.
George Mastros
"Votar en contra" para esto. Ya tenía habilitado el modo integrado. @Armaan responde breve pero perfectamente.
ecología
Esta respuesta es válida, resuelve mi problema, utilicé NET 3.5 y obtuve el error 500.21. cambiar al modo integrado resolvió mi problema.
libre
185

Siga estos pasos:

1) Ejecute el símbolo del sistema como administrador.

2) Escriba cualquiera de las dos líneas siguientes en el símbolo del sistema:

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

o

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
Armaan
fuente
2
Bienvenido a SO y gracias por tu respuesta. Esta respuesta se ha marcado para revisión debido a su brevedad. Si bien su respuesta puede ser técnicamente correcta, podría mejorarse con más texto, explicando cuál es el problema subyacente que tiene el OP y por qué su respuesta funciona.
Ingeniero de software
8
aquí tienes más texto. porque funciona muhahahaha +1. Creo que la verdadera razón es que si instalas 4.5.1 primero y luego pegas IIS, no se reconoce automáticamente correctamente. o lo tengo en orden inverso. de cualquier manera. esto funcionó para mí
hubson bropa
¡Ésta es la solución!
alexroat
4
Estoy construyendo un nuevo servidor 2008 R2 (sí, en el año 2015) e instalé 4.5.xy luego pegué IIS después ... como @hubsonBropa mencionó en su comentario. Esto me ayudó a superar el primero de muchos obstáculos.
bkwdesign
Si está utilizando .NET 4.5.xo 4.6.x, no se deje engañar por la respuesta que menciona 4.0 y piensa que no se aplica a usted. Este problema puede estar relacionado con el orden de instalación de .NET antes de IIS, como lo fue para mí. La ejecución del comando (en mi caso, la versión de 64 bits) lo solucionó a pesar de que mi aplicación usa .NET 4.5.2.
Coxy
51

Me encontré con este error en una nueva versión de Windows Server 2012 R2. Se instalaron IIS y .NET 4.5, pero no se agregó la función de servidor ASP.NET (versión 4.5 en mi caso). Asegúrese de que la versión de ASP.NET que necesita se haya agregado / instalado, como ASP.NET 4.5 está en esta captura de pantalla.

Rol del servidor ASP.NET

Jeremy Cook
fuente
Ahora es ASP.NET 4.7 (Svr 2016)
bendecko
31

Para solucionar el problema, intenté ejecutar

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

Sin embargo, no funcionó para mí. Tengo que ejecutar otra línea de comando en la ventana CMD como administrador. Aquí está el comando:

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

o

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

Espero que te ayude.

Lynn
fuente
Esto también me resolvió en Windows 10 Preview Build 10074 con IIS 10.
Shawn McGough
3
El comando dism funcionó para mí después de eliminar el %desde el principio. Así que me encontré: dism /online /enable-feature /featurename:IIS-ASPNET45 /all.
Schmalls
1
¡Funciona en Windows Server 2016! ¡Muchas gracias!
Adrian Księżarczyk
4

Recibí este error en mi aplicación ASP.Net 4.5 en Windows Server 2012 R2.

Vaya al menú de inicio -> "Activar o desactivar las funciones de Windows". Un mago apareció para mí.

Haga clic en Siguiente para Roles del servidor

Tuve que verificar esto para que esto funcione, ubicado en Web Server IIS-> Web Server-> Application Development (estos se basan en la respuesta de Jeremy Cook anterior):

ingrese la descripción de la imagen aquí

Luego haga clic en junto a Funciones y asegúrese de que esté marcado lo siguiente:

ingrese la descripción de la imagen aquí

Luego haga clic en Siguiente e Instalar. En este punto, el error desapareció para mí. ¡Buena suerte!

Rudy Scoggins
fuente
3

Esto se debe a que IIS 7 usa controladores http de ambos <system.web><httpHandlers>y <system.webServer><handlers>. si necesita CloudConnectHandler en su aplicación, debe agregar una <httpHandlers>sección con este controlador a <system.web>:

<httpHandlers>
    <add verb="*" path="CloudConnect.aspx" type="CloudConnectHandler" />
</httpHandlers>

y también agregue preConditionatributo al controlador en <system.webServer>:

<handlers>
  <add name="CloudConnectHandler" verb="*" path="CloudConnect.aspx" type="CloudConnectHandler" preCondition="integratedMode" />
</handlers>

Espero eso ayude

Evgeny Gorb
fuente
2

Para mí, recibía este mensaje de error al usar PUTo DELETEen WebAPI. También intenté volver a registrar .NET Framework como se sugirió, pero fue en vano.

Pude solucionar este problema desactivando WebDAV para mi grupo de aplicaciones individual, esto detuvo el error de 'módulo defectuoso' al usar PUTo DELETE.

Deshabilite WebDAV para el grupo de aplicaciones individual:

  1. Haga clic en el grupo de aplicaciones afectado
  2. Encuentra WebDAV Authoring Toolsen la lista
  3. Haga clic para abrirlo
  4. Haga clic Disable WebDAVen en la parte superior derecha.

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

Luke
fuente
1
Exactamente mi problema. Put and Delete no funcionaba con WebDav habilitado. ¡Gracias por compartir tu hallazgo!
2015
2

Tuve este problema en Windows 10 cuando necesitaba IIS en lugar de IIS Express. El nuevo proyecto web falló con el error de OP. Fix fue

Control Panel > Turn Windows Features on or off > Internet Information Services > World Wide Web Services > Application Development Features

garrapata ASP.NET 4.7(en mi caso)

Neil Thompson
fuente
0

Tenía este problema cada vez que implementaba un nuevo sitio web o actualizaba uno existente usando MSDeploy .

Pude solucionar esto descargando el dominio de la aplicación usando MSDeploy con la siguiente sintaxis:

msdeploy.exe -verb:sync -source:recycleApp -dest:recycleApp="Default Web Site/myAppName",recycleMode=UnloadAppDomain

También puede detener, iniciar o reciclar el grupo de aplicaciones; más detalles aquí: http://technet.microsoft.com/en-us/library/ee522997%28v=ws.10%29.aspx

Si bien la solución de Armaan ayudó a despegarme, no logró que el problema desapareciera de forma permanente.

neoscribe
fuente
0

si es IIS 8, vaya al panel de control, active o desactive las funciones de Windows y habilite la "Activación de canalización con nombre" incorrecta y luego reinicie IIS. Espero que lo mismo funcione con IIS 7

usuario3024678
fuente
-1

Descubrí que el orden de agregar roles y características es importante. En un sistema nuevo activo el rol "servidor de aplicaciones" y allí verifico explícitamente .net, el soporte del servidor web y finalmente el servicio de activación del proceso. Luego, automáticamente aparece un diálogo que indica que el rol "servidor web" también debe agregarse.

Andreas Goretzky
fuente
-1

Instale .NET framework como se muestra a continuación, también funcionará .NET versión 4.5 .

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir

Un poco de tiempo solo da aspnet_regiis.exe -i, no trabajes, así que cede el aspnet_regiis.exe -ircamino anterior.

Tarun Rathore
fuente