의도적으로 설계된 것입니다. 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 속성을 확인하십시오. 잠금 항목이 하나 이상 있으므로 잠금 위반이 발생합니다.
따라서 web.config에서 원하지 않는 항목 만 제거하거나 실제로 모든 항목을 지우고 직접 다시 추가 해야하는 경우 applicationHost.config에서 lockItem = "true" 웹 서버가 실제로 작동 할 수 있도록 각 요소를 다시 추가해야합니다.
편집하다
(요청에 따라 Daniel의 추가 정보를 추가했습니다. (Scott))
Scott의 말을 바탕으로 내가 한 일은 다음과 같습니다.
% windir % \ system32 \ inetsrv \ config에서 applicationHost.config를 열었습니다. 64 비트 Windows Server 2008에서는 64 비트 편집기를 사용하여 파일을 편집해야합니다 (기본 메모장은 해당하지만 메모장 ++에서는 파일을 찾을 수 없음). 이에 대한 자세한 내용은 여기를 참조하십시오.
요소에서 모든 모듈의 lockItem 속성을 false로 변경하십시오.
내 웹 응용 프로그램의 web.config 파일에서 다음을 수행 할 수있었습니다.
<system.webServer>
<modules>
<clear />
</modules>
</system.webServer>
물론 Scott이 지적했듯이 웹 서버가 남아 있지 않다는 것을 의미하므로 내 물건을 다시 실행하는 데 필요한 최소 모듈 세트는 다음과 같습니다 (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" />
또한 관심있는 사람들 을 위해, 왜 내가 이것을하고 있는지에 대한 배경 이야기 가 있습니다.