Das ist so gewollt. Der Abschnitt von system.webServer definiert im Wesentlichen IIS selbst. Wenn Sie, werden Sie mit nichts verlassen. In applicationHost.config sollten Sie ungefähr Folgendes haben:
<modules>
<add name="HttpCacheModule" lockItem="true" />
<add name="DynamicCompressionModule" lockItem="true" />
<add name="StaticCompressionModule" lockItem="true" />
<add name="DefaultDocumentModule" lockItem="true" />
<add name="DirectoryListingModule" lockItem="true" />
<add name="IsapiFilterModule" lockItem="true" />
<add name="ProtocolSupportModule" lockItem="true" />
<add name="HttpRedirectionModule" lockItem="true" />
<add name="StaticFileModule" lockItem="true" />
...
Beachten Sie die lockItem-Eigenschaften. Da es 1 oder mehr Sperrelemente gibt, wird eine Sperrverletzung ausgelöst.
Sie müssen also entweder nur die Elemente, die Sie nicht möchten, speziell aus der Datei web.config entfernen oder, wenn Sie wirklich alle Elemente löschen und Ihre eigenen hinzufügen müssen, in der Datei applicationHost.config das Kontrollkästchen lockItem = "true" aktivieren Stellen Sie sicher, dass Sie genügend Elemente hinzufügen, damit Ihr Webserver tatsächlich funktioniert.
Bearbeiten
(Weitere Informationen von Daniel sind seinem Antrag beigefügt. (Scott))
Hier ist, was ich basierend auf dem, was Scott gesagt hat, getan habe:
Geöffnete applicationHost.config in% windir% \ system32 \ inetsrv \ config. Beachten Sie, dass Sie in 64-Bit-Windows Server 2008 die Datei mit einem 64-Bit-Editor bearbeiten müssen (der native Editor kann, Notepad ++ kann die Datei jedoch nicht finden). Weitere Informationen hierzu finden Sie hier.
Ändern Sie in dem Element das lockItem-Attribut für alle Module in false.
Konnte dann in der Datei web.config meiner Webanwendung Folgendes tun:
<system.webServer>
<modules>
<clear />
</modules>
</system.webServer>
Wie Scott ausführt, bedeutet dies natürlich, dass kein Webserver mehr vorhanden ist. Hier ist also die minimale Anzahl von Modulen, die ich benötige, um meine Sachen wieder zum Laufen zu bringen (YMMV):
<add name="HttpRedirectionModule" lockItem="false" />
<add name="StaticFileModule" lockItem="false" />
<add name="CustomLoggingModule" lockItem="false" />
<add name="CustomErrorModule" lockItem="false" />
<add name="IsapiModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />
Für alle Interessierten ist hier die Hintergrundgeschichte , warum ich das tue.
Ich hoffe, es ist nicht zu spät, um zu helfen.
Ich habe dieses Problem heute erhalten und das Problem bei der Bearbeitung des folgenden ApplicationHost.Config-XML-Knotens behoben:
httpErrors lockAttributes = "allowAbsolutePathsWhenDelegated, defaultPath"
Entfernen Sie ", defaultPath" und starten Sie IIS neu (iisreset).
Ich hoffe es ist hilfreich.
quelle
Entfernen Sie die ursprüngliche Datei web.config (Sicherungskopie erstellen), und stellen Sie nach Änderungen über IIS (neue Datei web.config wird erstellt) die ursprünglichen Änderungen wieder her. Wenn Sie HTTP-FEHLER konfigurieren, folgen Sie dieser http://paymentgatewayintegrationhelp.com/Tech-Help/HTTP-Errors-and-webconfig-Lock-Violation-1140.asp
quelle