Đó là do thiết kế. Phần của system.webServer về cơ bản xác định IIS. Nếu bạn, bạn sẽ không còn lại bất cứ điều gì. Trong apphost.config, bạn sẽ có một cái gì đó như thế này:
<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" />
...
Lưu ý các thuộc tính lockItem. Bởi vì có từ 1 khóa trở lên, sẽ vi phạm khóa.
Vì vậy, bạn chỉ cần xóa cụ thể các mục mà bạn không muốn khỏi web.config hoặc nếu bạn thực sự cần xóa tất cả chúng và thêm lại các mục của riêng bạn, sau đó trong applicationhost.config xóa lockItem = "true" trên từng yếu tố đó và đảm bảo thêm lại chúng để máy chủ web của bạn thực sự hoạt động.
Biên tập
(Đã thêm thông tin từ Daniel, theo yêu cầu của anh ấy. (Scott))
Đây là những gì tôi đã làm dựa trên những gì Scott nói:
Đã mở applicationhost.config trong% Windir% \ system32 \ inetsrv \ config. Lưu ý rằng trong Windows Server 2008 64 bit, bạn sẽ cần chỉnh sửa tệp bằng trình chỉnh sửa 64 bit (Notepad gốc sẽ làm được, nhưng Notepad ++ sẽ không thể tìm thấy tệp). Xem ở đây để biết thêm thông tin về điều này.
Trong phần tử, thay đổi thuộc tính lockItem trên tất cả các mô-đun thành false.
Trong tệp web.config của ứng dụng web của tôi, sau đó có thể thực hiện các thao tác sau:
<system.webServer>
<modules>
<clear />
</modules>
</system.webServer>
Tất nhiên, như Scott chỉ ra, điều này có nghĩa là không còn máy chủ web, vì vậy đây là bộ mô-đun tối thiểu tôi cần để công cụ của tôi chạy lại (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" />
Ngoài ra, cho bất cứ ai quan tâm, đây là cốt truyện là tại sao tôi đang làm điều này.