IIS 5 dan 6 bekerja secara berbeda.
Ketika permintaan datang, IIS memeriksa peta skrip (peta ekstensi) dan merutekan permintaan ke aspnet_isapi.dll. Pengoperasian DLL ini dan cara permintaan memasuki runtime ASP.NET berbeda di IIS5 dan 6. Gambar 2 menunjukkan gambaran kasar dari proses ini.
Di IIS5, aspnet_isapi.dll dihosting langsung di proses inetinfo.exe. Jika Anda mengatur tingkat isolasi situs Web atau direktori virtual ke sedang atau tinggi, maka akan dihosting di proses pekerja IIS yang terpisah (terisolasi). Ketika permintaan ASP.NET pertama datang, DLL (aspnet_isapi.dll) akan memulai proses baru lainnya aspnet_wp.exe dan mengarahkan permintaan ke proses ini untuk diproses. Proses ini pada gilirannya memuat dan menghosting runtime .NET. Setiap permintaan yang diteruskan ke ISAPI DLL dialihkan ke proses ini melalui panggilan pipa bernama.
Gambar 2 - Tampilan tingkat tinggi aliran permintaan dari IIS ke runtime ASP.NET dan melalui pipa pemrosesan permintaan. IIS5 dan IIS6 berinteraksi dengan ASP.NET dengan cara yang berbeda, namun begitu permintaan masuk ke alur ASP.NET, seluruh alur pemrosesannya sama.
Berbeda dengan versi server sebelumnya, IIS6 telah sepenuhnya dioptimalkan untuk ASP.NET.
IIS6 - Kumpulan Aplikasi Berumur Panjang
IIS6 membuat perubahan signifikan pada model pemrosesan. IIS tidak lagi secara langsung menghosting kode eksternal yang dapat dieksekusi seperti ekstensi ISAPI. IIS selalu membuat thread pekerja terpisah - kumpulan aplikasi - dan semua pemrosesan terjadi dalam proses ini, termasuk eksekusi ISAPI dll. Penggabungan aplikasi merupakan peningkatan besar di IIS6 karena memungkinkan kontrol yang sangat halus atas kode apa yang akan dieksekusi di thread tertentu. Kumpulan aplikasi dapat dikonfigurasi pada setiap jalur virtual atau di seluruh situs Web, memungkinkan Anda untuk mengisolasi setiap aplikasi Web ke dalam prosesnya sendiri sehingga setiap aplikasi akan terhubung ke aplikasi Web lain yang berjalan pada mesin yang sama. Jika satu proses mengalami crash, maka proses lainnya tidak akan terpengaruh (setidaknya dari sudut pandang pemrosesan web).
Tidak hanya itu, kumpulan aplikasi sangat dapat dikonfigurasi. Anda dapat mengonfigurasi lingkungan keamanan tempat kumpulan dijalankan dengan mengatur tingkat peniruan eksekusinya, yang memungkinkan Anda menyesuaikan izin yang diberikan ke aplikasi web (sekali lagi, dengan rincian yang sangat halus). Peningkatan besar untuk ASP.NET adalah kumpulan aplikasi mengesampingkan sebagian besar pengaturan di bagian ProcessModel di file machine.config. Pengaturan di bagian ini sangat sulit untuk dikelola di IIS5 karena pengaturan ini bersifat global dan tidak dapat ditimpa di file web.config aplikasi. Saat menjalankan IIS6, sebagian besar pengaturan terkait ProcessModel diabaikan dan malah dibaca dari kumpulan aplikasi. Perhatikan bahwa sebagian besar disebutkan di sini - beberapa pengaturan, seperti ukuran kumpulan thread dan pengaturan thread IO, masih dibaca dari machine.config, karena tidak memiliki item yang sesuai dalam pengaturan kumpulan thread.
Karena kumpulan aplikasi adalah executable eksternal, executable ini dapat dengan mudah dipantau dan dikelola. IIS6 menyediakan serangkaian opsi pemeriksaan status sistem, restart dan batas waktu, yang dapat dengan mudah digunakan untuk memeriksa dan bahkan memperbaiki masalah program dalam banyak kasus. Terakhir, kumpulan aplikasi IIS6 tidak bergantung pada COM+ seperti mode isolasi IIS5. Hal ini dapat meningkatkan kinerja dan meningkatkan stabilitas (terutama untuk beberapa aplikasi internal yang perlu memanggil komponen COM
Meskipun kumpulan Aplikasi IIS6 adalah EXE yang terpisah
).sangat dioptimalkan untuk operasi HTTP. Mereka berkomunikasi langsung dengan driver HTTP.SYS mode kernel. Permintaan yang diterima diarahkan langsung ke kumpulan aplikasi yang sesuai. InetInfo pada dasarnya hanyalah sebuah hypervisor dan server konfigurasi - sebagian besar interaksi sebenarnya terjadi langsung antara HTTP.SYS dan kumpulan aplikasi, yang semuanya menjadikan IIS6 lingkungan yang lebih stabil dan efisien daripada IIS5. Hal ini terutama berlaku untuk konten statis dan aplikasi ASP.NET.
Kumpulan aplikasi IIS6 memiliki pemahaman bawaan tentang ASP.NET. ASP.NET dapat berinteraksi dengannya di API yang mendasarinya. Hal ini memungkinkan akses langsung ke API cache HTTP. Hal ini memungkinkan cache tingkat ASP.NET dikirimkan langsung ke server Web.
Di IIS6, ekstensi ISAPI dijalankan dalam proses pekerja kumpulan aplikasi. Runtime .NET juga berjalan dalam proses yang sama, sehingga komunikasi antara ekstensi ISAPI dan runtime .NET terjadi dalam proses tersebut. Ini memiliki keunggulan kinerja alami dibandingkan dengan pipa bernama yang digunakan oleh IIS5. Meskipun model hosting IIS sangat berbeda, antarmuka ke dalam kode yang dikelola ternyata serupa - hanya proses perutean pesan yang sedikit berbeda.