To z założenia. Sekcja system.webServer zasadniczo definiuje sam IIS. Jeśli tak, nie pozostaniesz z niczym. W applicationHost.config powinieneś mieć coś takiego:
<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" />
...
Zwróć uwagę na właściwości lockItem. Ponieważ istnieje 1 lub więcej elementów zamka, spowoduje naruszenie zasad zamka.
Więc albo musisz specjalnie usunąć tylko te elementy, których nie chcesz z web.config, lub jeśli naprawdę musisz je wyczyścić i dodać z powrotem własne, to w applicationHost.config usuń lockItem = "true" na każdego z tych elementów i upewnij się, że dodałeś wystarczającą ich liczbę, aby serwer WWW faktycznie działał.
Edytować
(Dołączone dodatkowe informacje od Daniela, na jego wniosek. (Scott))
Oto, co zrobiłem na podstawie tego, co powiedział Scott:
Otwarty applicationHost.config w% windir% \ system32 \ inetsrv \ config. Zauważ, że w 64-bitowym systemie Windows Server 2008 musisz edytować plik za pomocą 64-bitowego edytora (natywny Notatnik to zrobi, ale Notepad ++ nie będzie w stanie znaleźć pliku). Zobacz tutaj, aby uzyskać więcej informacji na ten temat.
W elemencie zmień atrybut lockItem we wszystkich modułach na false.
W pliku web.config mojej aplikacji internetowej byłem w stanie wykonać następujące czynności:
<system.webServer>
<modules>
<clear />
</modules>
</system.webServer>
Oczywiście, jak zauważa Scott, oznacza to, że nie ma już serwera WWW, więc oto minimalny zestaw modułów, których potrzebowałem, aby ponownie uruchomić moje rzeczy (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" />
Ponadto, dla wszystkich zainteresowanych, oto historia, dlaczego to robię.