Isso é por design. A seção do system.webServer essencialmente define o próprio IIS. Se você, você não ficará com nada. Em applicationHost.config, você deve ter algo assim:
<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" />
...
Observe as propriedades lockItem. Porque há 1 ou mais itens de bloqueio, irá lançar uma violação de bloqueio.
Então, você precisa especificamente remover apenas os itens que você não quer do web.config, ou se você realmente precisa limpá-los e adicionar seus próprios, então no applicationHost.config remova o lockItem=" true "em cada um desses elementos, e certifique-se de adicionar o suficiente deles de volta para que seu servidor realmente funcione.
Editar
(Acrescentou mais informações de Daniel, por seu pedido. (Scott))
Aqui está o que eu fiz com base no que Scott disse:
Abra o applicationHost.config em% windir% \ system32 \ inetsrv \ config. Observe que no Windows Server 2008 de 64 bits, você precisará editar o arquivo com um editor de 64 bits (o Bloco de Notas nativo fará isso, mas o Notepad ++ não conseguirá localizar o arquivo). Veja aqui para mais informações sobre isso.
No elemento, altere o atributo lockItem em todos os módulos para false.
No arquivo web.config do meu aplicativo da Web, foi possível fazer o seguinte:
<system.webServer>
<modules>
<clear />
</modules>
</system.webServer>
É claro que, como Scott aponta, isso significa que não resta nenhum servidor web, então aqui está o conjunto mínimo de módulos que eu precisava para fazer minhas coisas rodarem novamente (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" />
Além disso, para todos os interessados, veja a história de fundo sobre o motivo pelo qual eu estou fazendo isso.