Beim Bereitstellen einer Site auf einem Server ist ein Fehler aufgetreten. Beim Versuch, die Startseite zu laden oder auf die Authentifizierung auf der neuen Site in IIS zuzugreifen, wird folgende Fehlermeldung angezeigt:
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.
Weitere Details finden Sie hier. In Szenario 7 stimmt mein Hex-Fehlercode überein.
Die auf der oben verlinkten Site angegebene Lösung besteht darin, Allow for overrideModeDefault in dem in meinem Fehler erwähnten Abschnitt in der Datei applicationHost.config festzulegen. In meinem Fall unter Sicherheit in system.webServer . Wenn ich mir jedoch die applicationHost.config auf meinem lokalen Computer ansehe, auf dem die Site bereits ordnungsgemäß bereitgestellt wurde, wird dieser Abschnitt auf Verweigern gesetzt .
Wenn diese Lösung korrekt ist, wie läuft meine lokale Instanz mit derselben web.config einwandfrei ? Laut meiner applicationHost.config sollte dieser Abschnitt gesperrt sein, ist es aber nicht. Ich würde es vorziehen, die Datei applicationHost.config nicht zu ändern , da auf diesem Server viele andere Sites ausgeführt werden. Gibt es eine andere Lösung?
Antworten:
Ich hatte das gleiche Problem. Ich erinnere mich nicht, wo ich es im Web gefunden habe, aber hier ist, was ich getan habe:
Übrigens verwende ich Windows 7.
quelle
Sie können diese Einstellungen auch mit dem IIS-Manager bearbeiten.
Pflege dieses Learn IIS-Artikels :
Verwendung der Feature-Delegierung aus dem Stammverzeichnis von IIS:
Sie können dann jede Lese- / Schreibberechtigung auf Maschinenebene steuern, wodurch Sie andernfalls die Fehler overrideMode = "Deny" erhalten .
quelle
Für Windows Server 2012 und IIS 8 ist die Vorgehensweise ähnlich.
Das
Web Server (IIS)
undApplication Server
sollte installiert sein, und Sie sollten auch das optionaleWeb Server (IIS) Support
unter habenApplication Server
.quelle
Navigieren Sie zu "C: \ Windows \ System32 \ inetsrv \ config" (hier benötigen Sie Administratorrechte). Öffnen Sie applicationHost.config
Hinweis : In IISExpress und Visual Studio 2015 wird die applicationHost.config in gespeichert
$(solutionDir).vs\config\applicationhost.config
Suchen Sie den Abschnitt, der im Teil "Konfigurationsquelle" der Fehlermeldungsseite angezeigt wird. Für mich waren dies normalerweise "Module" oder "Handler".
Ändere das
overrideModeDefault
Attribut inAllow
Die ganze Zeile sieht also so aus:
Nach dem Speichern der Datei wurde die Seite in meinem Browser einwandfrei geladen.
Warnung: Bearbeiten von applicationHost.config unter 64-Bit-Windows
quelle
Sie müssen Handler entsperren. Dies kann mit dem folgenden Befehl cmd erfolgen:
Möglicherweise war eine weitere Information für Personen, die diesen Fehler unter IIS 8 erhalten, in meinem Fall auf der Microsoft Server 2012-Plattform. Ich hatte ein paar Stunden damit verbracht, mit anderen Fehlern zu kämpfen, die nach der Ausführung von appcmd auftauchten. Am Ende konnte ich das Problem beheben, indem ich die Webserverrolle entfernte und erneut installierte.
quelle
/section:access /sslFlags:SslNegotiateCert
und stellte fest, dass ich das oben genannte verwenden musste, mit-section:access
dem berichtet wurde alsUnlocked section "system.webServer/security/access"...
1. Öffnen Sie " Windows-Funktionen ein- oder ausschalten " mit: WinKey + R => "optionale Funktionen" => OK
Getestet unter Win 10 - Funktioniert aber wahrscheinlich auch unter anderen Windows-Versionen.
quelle
Ich habe diese beiden Befehle an einer Eingabeaufforderung mit erhöhten Rechten ausgeführt:
quelle
Gemäß meiner Antwort auf dieses ähnliche Problem ;
Versuchen Sie, die relevanten IIS-Konfigurationseinstellungen auf Serverebene wie folgt zu entsperren:
quelle
Unter Windows Server 2012 mit IIS 8 habe ich dieses Problem durch Aktivieren der ASP.NET 4.5- Funktion behoben :
und dann nach Ken's Antwort .
quelle
Die beste Option ist,
Application Settings
von derCustom Site Delegation
offenen
IIS
und von der Stammauswahl zu wechselnFeature Delegation
und dannApplication Settings
und von der rechten Seitenleiste auszuwählenRead/Write
quelle
Dies war der Trick für mich, für IIS 8 Windows Server 2012 R2
Gehen Sie zu "Funktionen aktivieren"
Gehen Sie dann zu allen Standardeinstellungen, Weiter, Weiter, Weiter usw.
Wählen Sie dann wie unten gezeigt aus:
Setzen Sie dann IIS zurück (optional), aber machen Sie es sicherer.
Dies ist eine zusätzliche Lösung, da es sich um ein generisches Problem handelt, bei dem jeder ein anderes Problem und damit eine andere Lösung hat. Prost!
quelle
Um dies zu beheben, öffnen Sie die IIS Express-Anwendunghost.config. Diese Datei wird unter C: \ Benutzer [Ihr Benutzername] \ Dokumente \ IISExpress \ config \ applicationhost.config gespeichert
Update für VS2015 +: Der Speicherort der Konfigurationsdatei ist $ (solutionDir) .vs \ config \ applicationhost.config
Suchen Sie nach den folgenden Zeilen
Ändern Sie diese Zeilen in
Speichern Sie es und aktualisieren Sie die Asp.net-Seite.
quelle
In unserem Fall unter IIS 8 wurde festgestellt, dass der Fehler beim Versuch angezeigt wurde, die Authentifizierung "für eine Site anzuzeigen, wenn:
Durch Markieren der Site-Funktionsdelegierung "Authentifizierung - Windows" = "Lesen / Schreiben" wurde der Fehler behoben. Es scheint, dass die web.config mit der Funktion "Schreibgeschützt" überhaupt nicht darauf verweisen darf, auch nicht, um sie zu deaktivieren, da dies anscheinend ein Schreibvorgang darstellt.
quelle
In IIS Express und VS 2015 befindet sich anscheinend eine Kopie der Datei applicationHost.config unter $ (solutionDir) .vs \ config \ applicationhost.config, sodass Sie dort Änderungen vornehmen müssen. Siehe diesen Link: http://digitaldrummerj.me/iis-express-windows-authentication/
Stellen Sie sicher, dass diese Zeilen wie folgt geändert werden:
quelle
In meinem Fall war auf dem Server "HTTP-Aktivierung" unter .NET Framework-Funktionen nicht aktiviert. Für Windows Server 2012 war die Lösung, die für mich funktioniert hat:
Server Manager -> Rollen und Funktionen hinzufügen -> Funktionen -> Stellen Sie sicher, dass unter .NET Framework der Version, die Sie verwenden möchten, "HTTP-Aktivierung" aktiviert ist.
quelle
Die Powershell-Methode zum Aktivieren der Funktionen (Windows Server 2012 +) - nach Bedarf anpassen:
quelle
Ich musste die SSL-Einstellungen in einem Unterordner ändern, als ich diese nette Nachricht erhielt. In meinem Fall hat mir die folgende Aktion geholfen.
Geöffnet C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config
Und änderte den Wert von overrideModeDefault = "Deny" in "Allow"
quelle
Der Fehler besagt, dass der Konfigurationsabschnitt auf der übergeordneten Ebene gesperrt ist. Es wird also nicht direkt eine Konfigurationsdatei sein, die das Problem behebt. Wir müssen die Hierarchie der Konfigurationsdateien durchgehen, um die Vererbung zu sehen. Überprüfen Sie den folgenden Link, um die Dateihierarchie und die Vererbung in IIS durchzugehen
https://msdn.microsoft.com/en-us/library/ms178685.aspx
Sie müssen also in der folgenden Reihenfolge nach den App-Konfigurationseinstellungen suchen
Gehen Sie alle diese Konfigurationen in der Reihenfolge 1 bis 6 sorgfältig durch, und Sie sollten sie finden.
quelle
In meinem Fall ist dieser Fehler aufgetreten, weil ich mit der falschen Konfigurationsdatei gearbeitet habe.
Ich habe das gemacht:
anstelle des richtigen Codes:
Mit anderen Worten, ich habe versucht, die web.config der Website anstelle der globalen Datei C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config zu verwenden, die einen Abschnitt (oder einen Abschnitt) für die Website enthält. Die Einstellung, die ich ändern wollte, ist nur in der Datei applicationHost.config vorhanden.
quelle
In meinem Fall war es etwas anderes.
Als ich die Lösung in eine neue Version von Visual Studio geladen habe, hat VS anscheinend eine neue projektspezifische Datei applicationhost.config erstellt:
MySolutionDir \ .vs \ config \ applicationhost.config
Es wurden die Einstellungen aus der neuen Konfiguration anstelle meiner bereits angepassten globalen IIS Express-Einstellungen verwendet. (\ Benutzer \% USER% \ Dokumente \ IISExpress \ config \ applicationhost.config)
In meinem Fall war dies die Einstellung, die eingestellt werden musste. Natürlich könnte es etwas anderes für Sie sein:
quelle
Ich bemerkte eine Antwort, die ähnlich war, aber in meinem Fall habe ich den IIS-konfigurierten Editor verwendet, um den Abschnitt zu finden, den ich "entsperren" wollte.
Dann habe ich den Pfad kopiert und in meiner Automatisierung verwendet, um ihn zu entsperren, bevor ich die Abschnitte geändert habe, die ich bearbeiten wollte.
quelle
Ich habe dasselbe Problem nach der Installation von IIS 7 unter Vista Home Premium erhalten. Um den Fehler zu korrigieren, habe ich die folgenden Werte in der Datei applicationHost.config unter Windows \ system32 \ inetsrv geändert.
Ändern Sie alle folgenden Werte in Abschnitt ->
quelle
Können Sie das versuchen:
Gehen Sie zum Anwendungspfad, in dem der Fehler "Verweigern" angezeigt wird, und klicken Sie mit der rechten Maustaste
Registerkarte Eigenschaften-> Sicherheit
Ändern Sie dabei die Berechtigungen und aktivieren Sie das Kontrollkästchen Lesen und Schreiben. Dann wird es hoffentlich fehlerfrei funktionieren.
quelle
Für Windows Server 2008 und IIS 7 ist die Vorgehensweise ähnlich. Weitere Informationen finden Sie unter: http://msdn.microsoft.com/en-us/library/vstudio/bb763178(v=vs.100).aspx
Wenn Sie den Rollendienst hinzufügen, wird "Anwendungsentwicklungsfunktionen" angezeigt.
Überprüfen (aktivieren) Sie die Funktionen. Ich habe alles überprüft.
quelle
Ich hatte ein Problem, bei dem ich die Werte für override = "Allow" (hier bereits erwähnt) eingegeben habe ...... aber auf einem x64-Bit-System ....... mein 32 Notepad ++ hat sie phantomgespeichert. Durch den Wechsel zu Notepad (einer 64-Bit-Anwendung auf einem x64-Bit-Betriebssystem) konnte ich die Einstellungen speichern.
Sehen :
http://dpotter.net/technical/2009/11/editing-applicationhostconfig-on-64-bit-windows/
Der relevante Text:
Eines der Probleme, das mir ausgeht, erfordert, dass ich applicationHost.config ansehe und möglicherweise bearbeite. Diese Datei befindet sich unter% SystemRoot% \ System32 \ inetsrv \ config. Scheint einfach genug. Ich konnte es leicht über die Befehlszeile finden, aber als ich es in meinen Lieblingseditor (Notepad ++) lud, wurde eine Datei nicht gefunden. Es stellt sich heraus, dass der System32-Ordner für 32-Bit-Anwendungen nach SysWOW64 umgeleitet wird. Es scheint keine Möglichkeit zu geben, den System32-Ordner mit einer 32-Bit-App anzuzeigen. Stelle dir das vor. Glücklicherweise werden 64-Bit-Versionen von Windows mit einer 64-Bit-Version von Notepad ausgeliefert. So sehr ich es nicht mag, zumindest funktioniert es.
quelle
In meinem Fall wurde dieser Fehler angezeigt, als ich versuchte, die Authentifizierungseinstellungen in IIS zusätzlich zum Surfen zu aktualisieren. Ich konnte diesen Fehler beheben, indem ich die Authentifizierungseinstellung aus der web.config selbst entfernte. Das Entfernen eines problematischen Konfigurationsabschnitts ist möglicherweise weniger invasiv und in einigen Fällen vorzuziehen, als die Serverrollen und -funktionen zu stark zu ändern:
Abschnitt entfernt:
quelle
Ich hatte das gleiche Problem.
quelle
Dies hat bei mir funktioniert. Auch in IIS 8 können Sie dieses Problem lösen, indem Sie den Server auf IIS Express ändern. Gehe zu Debug-> Eigenschaften Wählen Sie im Web den Server als IIS Express aus der Dropdown-Liste aus und erstellen Sie die Lösung neu
quelle
So nehmen Sie eine Änderung auf Anwendungsebene (Web.Config) vor:
Bitte entfernen Sie die Vertrauensstufe aus der web.config:
Eigentlich habe ich diesen Fehler erhalten, als ich versucht habe, meine Website auf dem Hosting-Server zu hosten, auf dessen Server ich keine Kontrolle habe. Das Entfernen der obigen Zeile aus meiner Anwendung web.config hat mein Problem behoben.
quelle
Folgendes hat bei mir funktioniert:
Gehen Sie zu den Projekteigenschaften. Registerkarte "Web". Stellen Sie Local IIS ein und legen Sie eine bestimmte Seite fest.
Ich habe Windows 7 und Visual Studio 2013.
quelle