それは設計によるものです。system.webServerのセクションは、基本的にIIS自体を定義します。もしそうなら、あなたは何も残されません。applicationHost.configには、次のようなものが必要です。
<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プロパティに注目してください。1つ以上のロック項目があるため、ロック違反がスローされます。
そのため、web.configから不要なアイテムのみを明確に削除するか、それらをすべてクリアして独自に追加する必要がある場合は、applicationHost.configでlockItem = "true"を削除します。それらの各要素を追加し、Webサーバーが実際に機能するように十分な数の要素を追加してください。
編集
(ダニエルからの追加情報、彼の要求ごと。(スコット))
スコットが言ったことに基づいて私がしたことは次のとおりです。
%windir%\ system32 \ inetsrv \ configでapplicationHost.configを開きました。64ビットWindows Server 2008では、64ビットエディターでファイルを編集する必要があることに注意してください(ネイティブのメモ帳でできますが、Notepad ++はファイルを見つけることができません)。詳細については、こちらをご覧ください。
要素で、すべてのモジュールのlockItem属性をfalseに変更します。
私のWebアプリケーションのweb.configファイルでは、次のことができました。
<system.webServer>
<modules>
<clear />
</modules>
</system.webServer>
もちろん、Scottが指摘しているように、これはWebサーバーが残っていないことを意味するので、ここに、私のものを再び実行するために必要な最小限のモジュールセット(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" />
また、興味がある人のために、私がこれをしている理由についてのバックストーリーがあります。