Itu dengan desain. Bagian dari system.webServer pada dasarnya mendefinisikan IIS itu sendiri. Jika Anda, Anda tidak akan dibiarkan dengan apa pun. Di applicationHost.config, Anda harus memiliki sesuatu seperti ini:
<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" />
...
Perhatikan properti lockItem. Karena ada 1 atau lebih item kunci, akan menyebabkan pelanggaran kunci.
Jadi, Anda harus menghapus item yang tidak Anda inginkan dari web.config secara khusus, atau jika Anda benar-benar perlu menghapus semuanya dan menambahkan kembali milik Anda, maka di applicationHost.config hapus lockItem = "true" pada masing-masing elemen tersebut, dan pastikan untuk menambahkannya kembali sehingga server web Anda benar-benar berfungsi.
Edit
(Tambahkan informasi lebih lanjut dari Daniel, sesuai permintaannya. (Scott))
Inilah yang saya lakukan berdasarkan apa yang dikatakan Scott:
Membuka applicationHost.config di% windir% \ system32 \ inetsrv \ config. Perhatikan bahwa dalam Windows Server 2008 64 bit, Anda harus mengedit file dengan editor 64 bit (Notepad asli akan berfungsi, tetapi Notepad ++ tidak akan dapat menemukan file). Lihat di sini untuk informasi lebih lanjut tentang ini.
Pada elemen, ubah atribut lockItem pada semua modul menjadi false.
Dalam file web.config aplikasi web saya, kemudian dapat melakukan hal berikut:
<system.webServer>
<modules>
<clear />
</modules>
</system.webServer>
Tentu saja, seperti yang ditunjukkan Scott, ini berarti tidak ada server web yang tersisa, jadi di sini adalah set minimum modul yang saya perlukan untuk membuat barang-barang saya berjalan kembali (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" />
Juga, bagi siapa pun yang tertarik, inilah latar belakang mengapa saya melakukan ini.
Saya harap ini belum terlambat untuk membantu.
Saya mendapatkan masalah ini hari ini dan memperbaiki masalah pengeditan dengan mengikuti simpul XML ApplicationHost.Config berikut:
httpErrors lockAttributes = "allowAbsolutePathsWhenDelegated, defaultPath"
Hapus itu ", defaultPath" dan restart IIS Anda (iisreset).
Saya harap ini membantu.
sumber
Coba hapus web.config asli Anda (buat cadangan) dan setelah melakukan perubahan melalui IIS (itu akan membuat web.config baru) pulihkan perubahan asli. Jika Anda mengkonfigurasi HTTP ERRORs, ikuti http://paymentgatewayintegrationhelp.com/Tech-Help/HTTP-Errors-and-webconfig-Lock-Violation-1140.asp
sumber