Bu tasarım gereğidir. System.webServer bölümü aslında IIS'nin kendisini tanımlar. Eğer sen, hiçbir şeyle kalmayacaksın. ApplicationHost.config dosyasında şöyle bir şey olmalıdır:
<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" />
...
LockItem özelliklerine dikkat edin. 1 veya daha fazla kilit öğesi olduğundan, bir kilit ihlali atar.
Bu nedenle, ya yalnızca web.config'den istemediğiniz öğeleri kaldırmanız gerekir, ya da gerçekten hepsini temizleyip kendiniz eklemeniz gerekiyorsa, applicationHost.config dosyasında lockItem = "true" bu öğelerin her birini ekleyin ve web sunucunuzun gerçekten çalışması için yeterince geri eklediğinizden emin olun.
Düzenle
(Daniel'in talebi üzerine daha fazla bilgi eklendi. (Scott))
Scott'ın söylediklerine dayanarak yaptığım şey:
% Windir% \ system32 \ inetsrv \ config dizininde applicationHost.config açıldı. 64 bit Windows Server 2008 işletim sisteminde, dosyayı 64 bit düzenleyiciyle düzenlemeniz gerektiğini unutmayın (yerel Not Defteri yapacak, ancak Notepad ++ dosyayı bulamayacaktır). Bununla ilgili daha fazla bilgi için buraya bakın.
Öğede, tüm modüllerdeki lockItem özniteliğini false olarak değiştirin.
Web uygulamamın web.config dosyasında aşağıdakileri yapabildim:
<system.webServer>
<modules>
<clear />
</modules>
</system.webServer>
Tabii ki, Scott'ın da belirttiği gibi, bu, hiçbir web sunucusu kalmadığı anlamına gelir, bu yüzden işimi tekrar çalıştırmak için gereken minimum modül seti (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" />
Ayrıca, ilgilenen herkes için, bunu neden yaptığımın arka planı .