Ich habe diesen Abschnitt in meiner web.config:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<security>
<authentication>
<anonymousAuthentication enabled="true" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
IIS7 stürzt ab und beschwert sich über den Autientication-Bereich:
Modul AnonymousAuthenticationModule-
Benachrichtigung AuthenticateRequest-
Handler StaticFile-
Fehlercode 0x80070021
Konfigurationsfehler Dieser Konfigurationsabschnitt kann für diesen Pfad nicht verwendet werden. Dies geschieht, wenn der Abschnitt auf übergeordneter Ebene gesperrt ist. Das Sperren ist entweder standardmäßig (overrideModeDefault = "Deny") oder wird explizit durch ein Standort-Tag mit overrideMode = "Deny" oder dem Legacy-Wert allowOverride = "false" festgelegt.
Config Source
69: <authentication>
70: <anonymousAuthentication enabled="true" />
Der übliche Weg, dies zu lösen, besteht darin, %windir%\system32\inetsrv\config\applicationHost.config
den Abschnitt aufzurufen und freizuschalten:
<sectionGroup name="system.webServer">
<sectionGroup name="security">
<section name="access" overrideModeDefault="Deny" />
<section name="applicationDependencies" overrideModeDefault="Deny" />
<sectionGroup name="authentication">
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<section name="basicAuthentication" overrideModeDefault="Allow" />
<section name="clientCertificateMappingAuthentication" overrideModeDefault="Allow" />
<section name="digestAuthentication" overrideModeDefault="Allow" />
<section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Allow" />
<section name="windowsAuthentication" overrideModeDefault="Allow" />
</sectionGroup>
(alternativ appcmd unlock config
).
Das Seltsame: Ich habe das getan und es klagt immer noch.
Ich habe nach Standorten gesucht (MVC ist der Name meiner Website, der das Stammverzeichnis aller von mir verwendeten Websites ist):
<location path="MVC" overrideMode="Allow">
<system.webServer overrideMode="Allow">
<security overrideMode="Allow">
<authentication overrideMode="Allow">
<windowsAuthentication enabled="true" />
<anonymousAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
Trotzdem explodiert es. Ich bin verwirrt, warum das passiert. Ich kann es nicht aus der web.config entfernen, ich möchte das Root-Problem finden.
Gibt es eine Möglichkeit, bestimmte Informationen von IIS abzurufen, welche Regel mich letztendlich verweigert?
Bearbeiten: Ich konnte dieses Problem mithilfe der IIS7-Verwaltungskonsole beheben, indem ich mich im Stammverzeichnis (auf meinem Computer) befand, auf "Konfiguration bearbeiten" klickte und den dortigen Abschnitt entsperrte. Trotzdem würde ich gerne wissen, ob es einen besseren Weg gibt, da ich die Datei, die sie tatsächlich ändert, nicht finden kann.