IIS-Konfigurationsfehler - Dieser Konfigurationsabschnitt kann unter diesem Pfad nicht verwendet werden

77

Ich erhalte die folgende Fehlermeldung, wenn ich versuche, meine Website auszuführen.

Die Website wird unter Windows 2012 R2 gehostet.

Konfigurationsfehler: Dieser Konfigurationsabschnitt kann unter diesem Pfad nicht verwendet werden. Dies geschieht, wenn der Abschnitt auf übergeordneter Ebene gesperrt ist. Das Sperren erfolgt entweder standardmäßig (overrideModeDefault = "Deny") oder wird explizit durch ein Standort-Tag mit overrideMode = "Deny" oder dem Legacy allowOverride = "false" festgelegt.

Fehlercode: 0x80070021

Konfigurationsquelle:

 60:     <httpErrors errorMode="Detailed" />
 61:     <handlers>
 62:       <remove name="ExtensionlessUrlHandler-Integrated-4.0" />

Unten ist alles, was ich versucht habe:

  1. Installierte .Net 3.5 mit "Funktionen und Rollen hinzufügen" in IIS
  2. In der applicationHost-Datei habe ich die folgenden Codeänderungen vorgenommen:

    Geänderte Abschnittshandler, Module, anonyme Authentifizierung, grundlegende Authentifizierung usw. überschreibenModeDefault von "Verweigern" in "Zulassen".

  3. Haben "HTTP-Aktivierung" in .Net 3.5 sowie 4.5 durchgeführt.

Unten ist mein Web-Konfigurationsdatei-Handler-Code:

<handlers>
  <remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
  <remove name="OPTIONSVerbHandler"/>
  <remove name="TRACEVerbHandler"/>
  <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
</handlers>
  1. Alle Funktionen in Funktionsfenstern in diesem Pfad wurden installiert: Internetinformationsdienst -> World Wide Web Services -> Anwendungsentwicklungsfunktionen -> Alle außer CGI wurden aktiviert.

  2. In der Feature-Delegierung war ASP früher schreibgeschützt. Ich habe es in Lesen / Schreiben geändert

  3. Entsperrte Handler über die Eingabeaufforderung

Aber ich kann den Fehler immer noch nicht beseitigen. Meine lokale Instanz funktioniert einwandfrei. Außerdem habe ich einen Entwicklungsserver, auf dem diese Website funktioniert. Nur auf meinem Produktionsserver wird dieser Fehler angezeigt.

Bitte helfen Sie mir herauszufinden, was dieses Problem verursachen könnte.

thenakulchawla
quelle
Haben Sie versucht, den Handler von der IIS-Konsolenschnittstelle in Ihrer Anwendung zu entfernen und festzustellen, was sich in Ihrer web.config geändert hat?
D4rkTiger
Wenn ich in der Funktionsansicht meiner Website unter IIS auf Handlerzuordnung doppelklicke, wird der gleiche Fehler angezeigt -> Dieser Konfigurationsabschnitt kann unter diesem Pfad nicht verwendet werden. Dies geschieht, wenn der Abschnitt auf übergeordneter Ebene gesperrt ist. Das Sperren erfolgt entweder standardmäßig (overrideModeDefault = "Deny") oder wird explizit durch ein Standort-Tag mit overrideMode = "Deny" oder dem Legacy allowOverride = "false" festgelegt.
thenakulchawla

Antworten:

152

Führen Sie die folgenden Schritte aus, um die Handler auf übergeordneter Ebene zu entsperren:

1) Wechseln Sie im Verbindungsbaum (in IIS) zu Ihrem Serverknoten und dann zu Ihrer Website.

2) Für die Website sehen Sie im rechten Fenster den Konfigurationseditor unter Verwaltung.

3) Doppelklicken Sie auf den Konfigurationseditor.

4) Im folgenden Fenster finden Sie oben ein Dropdown-Menü für Abschnitte. Wählen Sie "system.webServer / handlers" aus der Dropdown-Liste.

5) Auf der rechten Seite befindet sich ein weiteres Dropdown. Wählen Sie "ApplicationHost.Config"

6) Im rechten Bereich finden Sie "Abschnitt entsperren" unter der Überschrift "Abschnitt". Klicken Sie darauf.

7) Sobald die Handler am applicationHost entsperrt sind, sollte Ihre Website einwandfrei funktionieren.

thenakulchawla
quelle
2
Lief wie am Schnürchen. Gibt es einen Grund, warum diese "Funktionen" gesperrt sind?
Shamshiel
1
Ich bin mir nicht sicher, warum das passiert. Für mich waren nur die Server auf Produktionsebene gesperrt, der Rest war standardmäßig entsperrt.
thenakulchawla
Ich habe vier Boxen, alle neu, und auf allen vier eine einzige Anwendung installiert. Nur einer von vier hatte dieses Problem. Diese Antwort hat perfekt funktioniert.
Stevieb
1
Vielen Dank! Dies löste mein Problem. Das Dropdown-Menü in Schritt 5 war für mich jedoch nicht vorhanden (IIS 10 unter Win 10), und es war nicht der Abschnitt system.webServer / handlers, der für mich gesperrt war. Es stellte sich heraus, dass es sich um das defaultPath-Attribut im Abschnitt system.webServer / httpErrors handelt.
Jargs
Wie viele Fenster haben Sie geöffnet? Wie heißt das sich öffnende Fenster? Oben gibt es 2 Dropdowns!
AaA
71

Hier ist, was für mich funktioniert hat, hatte ein ähnliches Problem auf meinem neuen Laptop, der Windows 10 hatte.

  • Suchen Sie nach "Windows-Funktionen ein- oder ausschalten"
  • Überprüfen Sie "Internetinformationsdienste"
  • Überprüfen Sie "World Wide Web Services"
  • Aktivieren Sie "Anwendungsentwicklungsfunktionen".
  • Aktivieren Sie alle Elemente darunter

versuchen Sie es erneut, jetzt sollte es funktionieren.

Yasser Shaikh
quelle
Ich bin unter Windows 10 und eines der letzten Updates (wahrscheinlich Jubiläums-Update) hat alle meine IIS-Websites und -Einstellungen gelöscht und IIS auf meinem Computer vollständig deaktiviert! Ihre Lösung war schnell und hat meine Probleme behoben. Vielen Dank!
Russell Jonakin
4
Neuer Laptop mit Win10, und ich habe nur schlampig den Stammknoten von "Internet Information Services" unter "Windows-Funktionen ein- oder ausschalten" überprüft. Das hat den Trick gemacht.
Culme
Als ich alle meine Daten auf einen neuen Laptop übertragen habe, hat es nicht funktioniert. Ihre Lösung hat geholfen. Vielen Dank.
Yash Pandya
Funktioniert wie Charme für mich, danke Yasser, aber ich weiß nicht, was ich getan habe. Können Sie bitte erklären, welche Änderungen Sie vorgenommen haben?
3 Regeln
Arbeitete wie ein Zauber für mich unter Windows 10
Jay Jay Jay
17

Die meisten IIS-Abschnitte sind standardmäßig gesperrt. Sie können sie jedoch "entsperren", indem Sie das Attribut overrideModeDefaultfür die entsprechende Abschnittsgruppe von "Verweigern" auf "Zulassen" setzen, indem Sie die Datei " ApplicationHost.config"%windir%\system32\inetsrv\config im Administratormodus ändern

Geben Sie hier die Bildbeschreibung ein

Frank Fu
quelle
Das einzige was bei mir funktioniert hat. Ich hatte im Konfigurationseditor in IIS nach Abschnitten gesucht, die mit einem Schlosssymbol als gesperrt markiert waren und keine finden konnten.
Nonbirithm
8

Ich bin auf diesen Thread gestoßen und habe das Problem durch die folgenden Schritte gelöst. Mein Problem kann anders sein. Hoffe das kann jemandem helfen.

In Schalten Fenster ein und aus Navigieren Sie zu Serverrollen und wählen Sie die am wenigsten unten genannten Elemente.

Geben Sie hier die Bildbeschreibung ein

Prost !

Usman Younas
quelle
5

Ich hatte eine applicationhost.config in meinem Projektordner. Es scheint, dass IISExpress diesen Ordner verwendet, obwohl in meinem Ordner c: \ users eine andere Datei angezeigt wird

.vs \ config \ applicationhost.config

Rob Sedgwick
quelle
2

Als ich diese Schritte versuchte, bekam ich immer wieder Fehler:

  1. Suchen Sie nach "Windows-Funktionen ein- oder ausschalten"
  2. Überprüfen Sie "Internetinformationsdienste"
  3. Überprüfen Sie "World Wide Web Services"
  4. Aktivieren Sie "Anwendungsentwicklungsfunktionen".
  5. Aktivieren Sie alle Elemente darunter

Dann habe ich mir die Ereignisanzeige angesehen und diesen Fehler gesehen:Unable to install counter strings because the SYSTEM\CurrentControlSet\Services\ASP.NET_64\Performance key could not be opened or accessed. The first DWORD in the Data section contains the Win32 error code.

Um das Problem zu beheben, habe ich den folgenden Eintrag in der Registrierung manuell erstellt:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\ASP.NET_64\Performance

und folgte diesen Schritten:

  1. Suchen Sie nach "Windows-Funktionen ein- oder ausschalten"
  2. Überprüfen Sie "Internetinformationsdienste"
  3. Überprüfen Sie "World Wide Web Services"
  4. Aktivieren Sie "Anwendungsentwicklungsfunktionen".
  5. Aktivieren Sie alle Elemente darunter
SharpCoder
quelle
1

Ich denke, der bessere Weg ist, dass Sie Ihre Konfiguration aus Ihrer web.config entfernen müssen. Veröffentlichen Sie Ihren Code auf dem Server und tun Sie, was Sie direkt von der IIS-Serverschnittstelle entfernen möchten.

Dank dieser Methode müssen Sie nur die web.config abrufen und die Unterschiede vergleichen, wenn Sie erfolgreich tun, was Sie wollen. Danach müssen Sie nur noch die Lösung in diesem Beitrag veröffentlichen :-P.

D4rkTiger
quelle
Ich habe versucht, den Handlerabschnitt aus der Datei Web.Config zu entfernen und zu veröffentlichen. Aus irgendeinem Grund konnte ich die Daten abrufen, aber wenn ich die Post / Put-Operation ausführe, wird der Fehler 404 angezeigt und es wird nicht gefunden. Ich bin mir nicht sicher, warum das passiert. Irgendwelche Ideen?
thenakulchawla
Ok, jetzt funktioniert Ihre Website. Das ist ein guter Punkt :-). Jetzt denke ich, dass Sie mehr Details darüber haben müssen, was Sie tun möchten? Warum müssen Sie diesen Handler entfernen?
D4rkTiger
0

Klicken Sie auf Ihre Projekteigenschaften, gehen Sie zum Webabschnitt, wechseln Sie im Abschnitt Server von IIS Express zu Local IIS, um ein virtuelles Verzeichnis für Sie zu erstellen

user8266077
quelle
0

Folgendes hat bei mir funktioniert:

  1. Klicken Sie in IIS auf den Stammvermerk "LAPTOP ____ **".
  2. Klicken Sie in der mittleren Taskleiste unten auf Konfigurationseditor.
  3. Wählen Sie im oberen Dropdown-Menü "system.webServer / handlers".
  4. Im rechten Fenster im Abschnitt Abschnitt entsperren.
Ojha
quelle