435 Stimmen

Ein ASP.NET-Einstellung wurde erkannt, die im integrierten Pipeline-Modus nicht gilt.

Ich habe DotNetOpenAuth SDK-3.4.5.10201.vsix installiert und es funktioniert nicht. Es funktioniert lokal (wenn ich es als localhost ausführe), aber wenn ich versuche, es zu veröffentlichen, funktioniert es nicht.

Die IIS-Fehlermeldung, die ich erhalte, lautet:

Fehlerzusammenfassung
HTTP-Fehler 500.22 - Interner Serverfehler
Eine ASP.NET-Einstellung wurde entdeckt, die im integrierten verwalteten Pipelinemodus nicht zutrifft.

und:

Modul       ConfigurationValidationModule  
Benachrichtigung BeginRequest  
Handler      StaticFile  
Fehlercode   0x80070032  

Dann gibt es einige Vorschläge, wie man das Problem lösen kann:

Dinge, die du ausprobieren kannst:

  • Migriere die Konfiguration in den system.webServer/modules-Abschnitt. Du kannst dies manuell tun oder AppCmd aus der Befehlszeile verwenden - zum Beispiel, %SystemRoot%\system32\inetsrv\appcmd migrate config "Default Web Site/". Die Verwendung von AppCmd zum Migrieren deiner Anwendung ermöglicht es, im integrierten Modus zu funktionieren und weiterhin im klassischen Modus und auf früheren Versionen von IIS zu funktionieren.

  • Wenn du sicher bist, dass es in Ordnung ist, diesen Fehler zu ignorieren, kann er deaktiviert werden, indem du system.webServer/validation@validateIntegratedModeConfiguration auf false setzt.

  • Alternativ wechsle die Anwendung zu einem Klassik-Modus-Anwendungspool - zum Beispiel, %SystemRoot%\system32\inetsrv\appcmd set app "Default Web Site/" /applicationPool:"Classic .NET AppPool". Tu dies nur, wenn du nicht in der Lage bist, deine Anwendung zu migrieren.
    (Setze "Default Web Site" und "Classic .NET AppPool" auf deinen Anwendungspfad und den Namen des Anwendungspools)

Das Problem ist, dass ich keinen Zugriff auf den ISS-Server habe, da ich nicht der Besitzer bin. Gibt es einen Weg, um das zu lösen?

8voto

Nil Punkte 81

Stellen Sie sicher, dass diese Schlüssel in Ihrer web.config existieren:

Überprüfen Sie auch die Asp.Net-Impressation = Deaktivieren in der IIS Site-Authentifizierung

3voto

Sudhanshu Mishra Punkte 6123

Ich bin auf dieses Problem gestoßen und inspiriert von @Jeremy Cook's Antwort, habe ich den Mut gefasst herauszufinden, was zum Teufel dazu geführt hat, dass IIS 7 Integrated Mode meine web.config nicht mochte. Hier ist mein Szenario:

  1. Web API (Version 4.0.030506.0 auch bekannt als die alte Version)
  2. .NET 4.0
  3. Attribute Routing 3.5.6 für Web API [Spoiler: es war dieser hier!]

Ich wollte Attribut-Routing in einem Projekt verwenden, das (leider) .NET 4 verwenden musste und daher nicht Web API 2.2 verwenden konnte (welches .NET 4.5 benötigt). Das gut gemeinte NuGet-Paket hat diesen Abschnitt unter dem Abschnitt hinzugefügt:

[Ich sage gut gemeint, weil dieser Teil auf älteren Versionen von IIS erforderlich ist]

Das Entfernen dieses Abschnitts hat mich über den HTTP 500.23 Fehler hinweggebracht!!

Zusammenfassung: Ich stimme Jeremys Worten zu, dass es wichtig ist zu verstehen, warum Dinge nicht funktionieren, anstatt nur "das Symptom zu überdecken". Selbst wenn Sie das Symptom überdecken müssen, wissen Sie, was Sie tun (und warum) :-)

0 Stimmen

Vielen Dank. Ich habe AttributeRouting hinzugefügt, einschließlich des Api Controller-Add-Ons NuGet-Pakets, und das von Ihnen angegebene Abschnitt aus der web.config entfernt, um das Problem zu lösen. Allerdings mache ich mir ein wenig Sorgen, da meine MVC-Web-App bereits das .NET-Framework 4.5 verwendet.

2 Stimmen

@RobertOschler Wenn du auf .NET 4.5 bist, hast du meiner Kenntnis nach bereits Attribut-Routing integriert - du solltest dieses NuGet nicht benötigen?

0 Stimmen

Danke und Mist. Es dauerte heute einige Stunden, um das AttributeRouting-Paket zum Laufen zu bringen NuGet. Ich habe es herausgenommen und all die vom mir hinzugefügten "Code-Reparaturen" rückgängig gemacht, um es zum Laufen zu bringen, und habe das Web API 2 Route() Attribut für das GET() Attribut ausgetauscht. Hat super funktioniert. Wir brauchen wirklich ein Expertensystem in diesen Tagen, um uns mit all diesen Paketen zu helfen.

2voto

Paul Punkte 449

Dies hat für mich funktioniert:

  1. Löschen Sie die ursprünglich erstellte Seite.
  2. Erstellen Sie die Seite erneut in IIS.
  3. Lösung bereinigen
  4. Lösung erstellen

Es scheint, als wäre etwas schiefgegangen, als ich die Seite ursprünglich erstellt habe. Ich hasse Lösungen, die so ähnlich sind wie "Starten Sie Ihren Computer neu und installieren Sie dann Windows neu", ohne zu wissen, was den Fehler verursacht hat. Aber das hat für mich funktioniert. Schnell und einfach. Ich hoffe, es hilft auch jemand anderem.

2voto

Mcan_Cicek Punkte 173

Überprüfen Sie, ob diese Schlüssel in Ihrer Konfigurationsdatei vorhanden sind

0voto

hossein khazai Punkte 40

Die Methode für lokal ist der Fehler

Bild

8 Stimmen

Ändern Sie diese Einstellung nicht, es sei denn, Sie wissen wirklich, was Sie tun. Dies ist fast nie die richtige Antwort.

0 Stimmen

Wenn das Ziel darin besteht, es im klassischen Modus auszuführen, ist dies eine bessere Lösung als das Verbergen des Validierungsfehlers, der besagt, dass es im integrierten Modus nicht richtig ausgeführt wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X