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.

danmine
sumber
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.

Chris
sumber
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 +).

leppie
sumber
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