Perbedaan antara <system.web> dan <system.webServer>?


197

Setiap kali saya harus menambahkan handler atau modul untuk ASP.NET dengan IIS7, instruksi selalu memberitahu saya untuk memasukkannya ke dalam dua bagian: system.webdan system.webserver.

<system.web>
    <httpHandlers>
    </httpHandlers>
    <httpModules>
    </httpModules>
</system.web>

Dan ini:

<system.webServer>
    <modules>
    </modules>
    <handlers>
    </handlers>
</system.webServer>

Apa perbedaan antara kedua bagian ini?

Selain itu, jika saya tidak menambahkannya ke system.webbagian, debugger Visual Studio 2008 saya juga tidak berfungsi dengan benar.


2
referensi saat ini yang lebih baik untuk ini adalah: msdn.microsoft.com/en-us/library/46c5ddfy.aspx
Shannon

Jawaban:


157

Bagian system.web adalah untuk mengkonfigurasi IIS 6.0, sedangkan versi system.webserver digunakan untuk mengkonfigurasi IIS 7.0. IIS 7.0 mencakup pipa ASP.NET baru dan beberapa perbedaan konfigurasi, karenanya bagian konfigurasi tambahan.

Namun...

Jika Anda menjalankan IIS 7.0 dalam mode terintegrasi saja, Anda tidak perlu menambahkan penangan ke kedua bagian. Menambahkannya ke system.web juga merupakan fallback untuk IIS 7.0 yang beroperasi dalam mode klasik, kecuali saya salah. Saya belum melakukan pengujian ekstensif tentang ini.

Lihat http://msdn.microsoft.com/en-us/library/bb763179.aspx untuk informasi lebih lanjut.


4
Bagaimana dengan atribut seperti <httpRuntime> yang ditempatkan di system.web tetapi masih membuat perbedaan pada mode IIS 7 terintegrasi?
sclarson

38
Bagian system.web tidak digantikan oleh bagian system.webserver, hanya diperpanjang.
Chris

Pada IIS 8.5 saya menemukan bahwa httpCookiespengaturan tidak tersedia di system.webServer tetapi berfungsi jika saya membuat system.web dan meletakkannya di sana.
Eborbob

44

Yang pertama adalah untuk Mode Klasik.

Yang terakhir adalah untuk Mode Pipeline Terpadu (tersedia di IIS7 +).


Mengingat pengalaman saya, apakah ini jawaban yang lebih panjang, jelas dan nyata. Selain mode klasik pada yang pertama, tambahkan IIS express dan server lain yang bukan IIS 7.
Ben Gripka
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.