Questo è di progettazione. La sezione di system.webServer definisce essenzialmente IIS stesso. Se non sarai lasciato con niente. In applicationHost.config, dovresti avere qualcosa del genere:
<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" />
...
Notare le proprietà lockItem. Poiché ci sono 1 o più elementi di blocco, si genera una violazione di blocco.
Quindi, o devi rimuovere specificamente solo gli elementi che non desideri da web.config, o se hai davvero bisogno di cancellarli tutti e aggiungere di nuovo i tuoi, quindi in applicationHost.config rimuovi lockItem = "true" su ognuno di questi elementi e assicurati di aggiungerne abbastanza in modo che il tuo server web funzioni davvero.
modificare
(Aggiunte ulteriori informazioni da Daniel, secondo la sua richiesta. (Scott))
Ecco cosa ho fatto sulla base di ciò che Scott ha detto:
ApplicationHost.config aperto in% windir% \ system32 \ inetsrv \ config. Si noti che in Windows Server 2008 a 64 bit, sarà necessario modificare il file con un editor a 64 bit (lo farà il Blocco note nativo, ma Notepad ++ non sarà in grado di trovare il file). Vedi qui per maggiori informazioni a riguardo.
Nell'elemento, modifica l'attributo lockItem su tutti i moduli su false.
Nel file web.config della mia applicazione Web, sono stato quindi in grado di eseguire le seguenti operazioni:
<system.webServer>
<modules>
<clear />
</modules>
</system.webServer>
Naturalmente, come sottolinea Scott, questo significa che non è rimasto alcun server web, quindi ecco il set minimo di moduli di cui avevo bisogno per far funzionare di nuovo le mie cose (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" />
Inoltre, per chiunque sia interessato, ecco il retroscena sul perché lo sto facendo.