500.21 Fehlerhaftes Modul "ManagedPipelineHandler" in seiner Modulliste

83

Ich erhalte den Fehler:

HTTP-Fehler 500.21 - Interner Server-Fehlerbehandler "CloudConnectHandler" hat ein fehlerhaftes Modul "ManagedPipelineHandler" in seiner Modulliste

Meine web.config-Datei sieht folgendermaßen aus:

<?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>

Es gibt viele Ratschläge, die darauf hinweisen, dass asp.net nicht richtig installiert ist. Die übliche Lösung ist:

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

oder

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

Ich habe beide ohne Fehler ausgeführt. Ich habe IIS neu gestartet, aber das Problem besteht weiterhin. Die Site verwendet einen Anwendungspool. Der App-Pool wird gestartet, .net Framework = 4.0, Managed Pipeline = Classic, Identity = LocalSystem.

Ich habe die letzten paar Stunden damit verbracht, herauszufinden, wo das Problem liegt. Ich hoffe, jemand kann helfen.

George Mastros
quelle

Antworten:

18

Versuchen Sie, in den integrierten Modus zu wechseln. Siehe folgenden Thread:

IIS 7, HttpHandler und HTTP-Fehler 500.21

Radomir Zaric
quelle
Ich hatte es auf integriert umgestellt, was einen anderen Fehler verursachte. Sobald ich das behoben hatte, fing alles an richtig zu funktionieren. Danke dir.
George Mastros
"Down Vote" dafür. Ich hatte bereits den integrierten Modus aktiviert. @Armaan beantwortet es kurz aber perfekt.
Echologie
Diese Antwort ist gültig, sie löst mein Problem, ich habe NET 3.5 verwendet und den Fehler 500.21 erhalten. Der Wechsel in den integrierten Modus hat mein Problem behoben.
Freedeveloper
186

Bitte folgen Sie diesen Schritten:

1) Führen Sie die Eingabeaufforderung als Administrator aus.

2) Geben Sie eine der beiden folgenden Zeilen in die Eingabeaufforderung ein:

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

oder

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
Armaan
quelle
2
Willkommen bei SO und vielen Dank für Ihre Antwort. Diese Antwort wurde aufgrund ihrer Kürze zur Überprüfung markiert. Obwohl Ihre Antwort technisch korrekt sein mag, könnte sie durch etwas mehr Text verbessert werden, um zu erklären, was das zugrunde liegende Problem des OP ist und warum Ihre Antwort funktioniert.
Software Engineer
8
Hier ist der weitere Text. weil es funktioniert muhahahaha +1. Ich denke, der wahre Grund ist, wenn Sie zuerst 4.5.1 installieren und dann IIS darauf kleben, wird es nicht automatisch richtig erkannt. oder ich habe das in umgekehrter Reihenfolge. in jedem Fall. Das hat bei mir
funktioniert
Das ist die Lösung!
Alexroat
4
Ich baue einen neuen 2008 R2-Server (ja, im Jahr 2015) und habe zuerst 4.5.x installiert und anschließend IIS aktiviert. Wie @hubsonBropa in seinem Kommentar erwähnt. Damit habe ich die erste von vielen Hürden überwunden.
bkwdesign
Wenn Sie .NET 4.5.x oder 4.6.x verwenden, lassen Sie sich nicht von der Antwort täuschen, in der 4.0 erwähnt wird, und denken Sie, dass sie nicht auf Sie zutrifft. Dieses Problem kann mit der Reihenfolge der Installation von .NET vor IIS zusammenhängen, wie es für mich war. Durch Ausführen des Befehls (in meinem Fall die 64-Bit-Version) wurde das Problem behoben, obwohl meine Anwendung .NET 4.5.2 verwendet.
Coxy
51

Ich bin auf diesen Fehler bei einem neuen Build von Windows Server 2012 R2 gestoßen. IIS und .NET 4.5 wurden installiert, aber die ASP.NET-Serverrolle (in meinem Fall Version 4.5) wurde nicht hinzugefügt. Stellen Sie sicher, dass die von Ihnen benötigte Version von ASP.NET wie in diesem Screenshot wie ASP.NET 4.5 hinzugefügt / installiert wurde.

ASP.NET-Serverrolle

Jeremy Cook
quelle
Es ist jetzt ASP.NET 4.7 (Svr 2016)
Bendecko
31

Um das Problem zu beheben, habe ich versucht zu laufen

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

Bei mir hat es jedoch nicht funktioniert. Ich muss als Administrator eine andere Befehlszeile im CMD-Fenster ausführen. Hier ist der Befehl:

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

oder

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

Hoffe es wird helfen.

Lynn
quelle
Dies löste es auch für mich in Windows 10 Preview Build 10074 mit IIS 10.
Shawn McGough
3
Der Befehl dism funktionierte für mich, nachdem ich den %von Anfang an entfernt hatte. Also rannte ich : dism /online /enable-feature /featurename:IIS-ASPNET45 /all.
Schmalls
1
Funktioniert unter Windows Server 2016! Vielen Dank!
Adrian Księżarczyk
4

Ich habe diesen Fehler in meiner ASP.Net 4.5-App unter Windows Server 2012 R2 erhalten.

Zum Startmenü gehen -> "Windows-Funktionen ein- oder ausschalten". Ein Zauberer tauchte für mich auf.

Klicken Sie neben Serverrollen auf Weiter

Ich musste diese überprüfen, damit dies funktioniert. Sie befindet sich unter Webserver-IIS-> Webserver-> Anwendungsentwicklung (diese basieren auf der obigen Antwort von Jeremy Cook):

Geben Sie hier die Bildbeschreibung ein

Klicken Sie dann neben Features und stellen Sie sicher, dass Folgendes aktiviert ist:

Geben Sie hier die Bildbeschreibung ein

Klicken Sie dann auf Weiter und dann auf Installieren. Zu diesem Zeitpunkt verschwand der Fehler für mich. Viel Glück!

Rudy Scoggins
quelle
3

Dies liegt daran, dass IIS 7 http-Handler von <system.web><httpHandlers>und verwendet <system.webServer><handlers>. Wenn Sie CloudConnectHandler in Ihrer Anwendung benötigen, sollten Sie den folgenden <httpHandlers>Abschnitt mit diesem Handler hinzufügen <system.web>:

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

und fügen Sie preConditiondem Handler auch ein Attribut hinzu in <system.webServer>:

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

Ich hoffe es hilft

Evgeny Gorb
quelle
2

Bei mir wurde diese Fehlermeldung bei der Verwendung von PUToder DELETEzu WebAPI angezeigt. Ich habe auch versucht, .NET Framework wie vorgeschlagen neu zu registrieren, aber ohne Erfolg.

Ich konnte dies beheben, indem ich WebDAV für meinen individuellen Anwendungspool deaktivierte. Dadurch wurde der Fehler "Bad Module" bei Verwendung von PUToder gestoppt DELETE.

Deaktivieren Sie WebDAV für den individuellen App-Pool:

  1. Klicken Sie auf den betroffenen Anwendungspool
  2. Finden Sie WebDAV Authoring Toolsin der Liste
  3. Klicken Sie, um es zu öffnen
  4. Klicken Sie Disable WebDAVoben rechts.

Über diesen Link habe ich die Anweisungen gefunden, aber es ist nicht sehr klar.

Luke
quelle
1
Mein Problem genau. Put and Delete funktionierte nicht mit aktiviertem WebDav. Vielen Dank für Ihre Erkenntnis!
ilter
2

Ich hatte dieses Problem in Windows 10, als ich IIS anstelle von IIS Express benötigte. Neues Webprojekt mit OP-Fehler fehlgeschlagen. Fix war

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

Häkchen ASP.NET 4.7(in meinem Fall)

Neil Thompson
quelle
0

Ich hatte dieses Problem jedes Mal, wenn ich eine neue Website bereitstellte oder eine vorhandene mit aktualisierte bereitstellte MSDeploy .

Ich konnte dies beheben, indem ich die App-Domäne mit MSDeploy entlud mit der folgenden Syntax :

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

Sie können den Anwendungspool auch stoppen, starten oder recyceln - weitere Details finden Sie hier: http://technet.microsoft.com/en-us/library/ee522997%28v=ws.10%29.aspx

Armaans Lösung hat mir zwar geholfen, mich zu lösen, aber das Problem wurde dadurch nicht dauerhaft behoben.

neoscribe
quelle
0

Wenn es sich um IIS 8 handelt, rufen Sie die Systemsteuerung auf, schalten Sie die Windows-Funktionen ein / aus und aktivieren Sie "Bad Named Pipe Activation". Starten Sie dann IIS neu. Hoffe, dass das gleiche mit IIS 7 funktioniert

user3024678
quelle
-1

Ich habe festgestellt, dass die Reihenfolge des Hinzufügens von Rollen und Funktionen wichtig ist. Auf einem neuen System aktiviere ich die Rolle "Anwendungsserver" und überprüfe dort explizit .net, Webserverunterstützung und schließlich Prozessaktivierungsdienst. Dann erscheint automatisch ein Dialog, dass die Rolle "Webserver" ebenfalls hinzugefügt werden muss.

Andreas Goretzky
quelle
-1

Installieren Sie .NET Framework wie folgt, es funktioniert auch mit .NET Version 4.5 .

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

Einige Zeit nur geben aspnet_regiis.exe -ifunktioniert nicht, also geben Sie aspnet_regiis.exe -iroben Pfad.

Tarun Rathore
quelle