Pengantar Arsitektur IIS
oleh Tim IIS, Reagan Templin
Kompatibilitas
Versi | Catatan |
---|---|
IIS 7.0 dan yang lebih baru | Fitur yang dijelaskan dalam artikel ini diperkenalkan di IIS 7.0. |
IIS 6.0 dan yang lebih lama | Fitur yang dijelaskan dalam artikel ini tidak didukung sebelum IIS 7.0. |
Pengantar
Internet Information Services (IIS) 7 dan yang lebih baru menyediakan arsitektur pemrosesan permintaan yang mencakup:
- Layanan Aktivasi Proses Windows (WAS), yang memungkinkan situs menggunakan protokol selain HTTP dan HTTPS.
- Mesin server Web yang dapat disesuaikan dengan menambahkan atau menghapus modul.
- Alur pemrosesan permintaan terintegrasi dari IIS dan ASP.NET.
Komponen di IIS
IIS berisi beberapa komponen yang melakukan fungsi penting untuk peran aplikasi dan server Web di Windows ServerĀ® 2008 (IIS 7.0) dan Windows Server 2008 R2 (IIS 7.5). Setiap komponen memiliki tanggung jawab, seperti mendengarkan permintaan yang dibuat ke server, mengelola proses, dan membaca file konfigurasi. Komponen-komponen ini termasuk pendengar protokol, seperti HTTP.sys, dan layanan, seperti World Wide Web Publishing Service (layanan WWW) dan Windows Process Activation Service (WAS).
Pendengar Protokol
Pendengar protokol menerima permintaan khusus protokol, mengirimnya ke IIS untuk diproses, lalu mengembalikan respons kepada pemohon. Misalnya, ketika browser klien meminta halaman Web dari Internet, pendengar HTTP, HTTP.sys, mengambil permintaan dan mengirimkannya ke IIS untuk diproses. Setelah IIS memproses permintaan, HTTP.sys mengembalikan respons ke browser klien.
Secara default, IIS menyediakan HTTP.sys sebagai pendengar protokol yang mendengarkan permintaan HTTP dan HTTPS. HTTP.sys diperkenalkan di IIS 6.0 sebagai pendengar protokol khusus HTTP untuk permintaan HTTP. HTTP.sys tetap menjadi pendengar HTTP di IIS 7 dan yang lebih baru, tetapi menyertakan dukungan untuk Secure Sockets Layer (SSL).
Untuk mendukung layanan dan aplikasi yang menggunakan protokol selain HTTP dan HTTPS, Anda dapat menggunakan teknologi seperti Windows Communication Foundation (WCF). WCF memiliki adaptor pendengar yang menyediakan fungsionalitas pendengar protokol dan adaptor pendengar. Adaptor pendengar tercakup nanti dalam dokumen ini. Untuk informasi selengkapnya tentang WCF, lihat Windows Communication Foundation di MSDN.
Tumpukan Protokol Transfer Hiperteks (HTTP.sys)
Pendengar HTTP adalah bagian dari subsistem jaringan sistem operasi Windows, dan diimplementasikan sebagai driver perangkat mode kernel yang disebut tumpukan HTTP (HTTP.sys). HTTP.sys mendengarkan permintaan HTTP dari jaringan, meneruskan permintaan ke IIS untuk diproses, lalu mengembalikan respons yang diproses ke browser klien.
Di IIS 6.0, HTTP.sys menggantikan Windows Sockets API (Winsock), yang merupakan komponen mode pengguna yang digunakan oleh versi IIS sebelumnya untuk menerima permintaan HTTP dan mengirim respons HTTP. IIS 7 dan yang lebih baru terus mengandalkan HTTP.sys untuk permintaan HTTP.
HTTP.sys memberikan manfaat berikut:
- Penembolokan mode kernel. Permintaan respons cache dilayani tanpa beralih ke mode pengguna.
- Antrean permintaan mode kernel. Permintaan menyebabkan lebih sedikit overhead dalam pengalihan konteks karena kernel meneruskan permintaan langsung ke proses pekerja yang benar. Jika tidak ada proses pekerja yang tersedia untuk menerima permintaan, antrean permintaan mode kernel menahan permintaan hingga proses pekerja mengambilnya.
- Minta pra-pemrosesan dan pemfilteran keamanan.
Layanan Penerbitan World Wide Web (layanan WWW)
Di IIS 7 dan yang lebih baru, fungsionalitas yang sebelumnya ditangani oleh Layanan Penerbitan World Wide Web (Layanan WWW) saja sekarang dibagi antara dua layanan: Layanan WWW dan layanan baru, Layanan Aktivasi Proses Windows (WAS). Kedua layanan ini berjalan sebagai LocalSystem dalam proses Svchost.exe yang sama, dan berbagi biner yang sama.
Catatan
Anda mungkin juga melihat Layanan WWW yang disebut sebagai W3SVC dalam dokumentasi.
Cara kerja Layanan WWW di IIS 6.0
Di IIS 6.0, Layanan WWW mengelola area utama berikut di IIS:
- Administrasi dan konfigurasi HTTP
- Manajemen proses
- Pemantauan performa
Administrasi dan Konfigurasi HTTP
Layanan WWW membaca informasi konfigurasi dari metabase IIS dan menggunakan informasi tersebut untuk mengonfigurasi dan memperbarui pendengar HTTP, HTTP.sys. Selain itu, layanan WWW memulai, menghentikan, memantau, dan mengelola proses pekerja yang memproses permintaan HTTP.
Pemantauan Performa
Layanan WWW memantau performa dan menyediakan penghitung kinerja untuk situs Web dan untuk cache IIS.
Manajemen Proses
Layanan WWW mengelola kumpulan aplikasi dan proses pekerja, seperti memulai, menghentikan, dan mendaur ulang proses pekerja. Selain itu, Layanan WWW memantau kesehatan proses pekerja, dan memanggil deteksi kegagalan yang cepat untuk menghentikan proses baru dimulai ketika beberapa proses pekerja gagal dalam jumlah waktu yang dapat dikonfigurasi.
Cara kerja Layanan WWW di IIS
Di IIS, layanan WWW tidak lagi mengelola proses pekerja. Sebaliknya, Layanan WWW adalah adaptor pendengar untuk pendengar HTTP, HTTP.sys. Sebagai adaptor pendengar, Layanan WWW terutama bertanggung jawab untuk mengonfigurasi HTTP.sys, memperbarui HTTP.sys saat konfigurasi berubah, dan memberi tahu WAS saat permintaan memasuki antrean permintaan.
Selain itu, Layanan WWW terus mengumpulkan penghitung untuk situs Web. Karena penghitung kinerja tetap menjadi bagian dari Layanan WWW, penghitung kinerja tersebut spesifik HTTP dan tidak berlaku untuk WAS.
Windows Process Activation Service (WAS)
Di IIS 7 dan yang lebih baru, Windows Process Activation Service (WAS) mengelola konfigurasi kumpulan aplikasi dan proses pekerja alih-alih Layanan WWW. Ini memungkinkan Anda menggunakan konfigurasi dan model proses yang sama untuk situs HTTP dan non-HTTP.
Selain itu, Anda dapat menjalankan WAS tanpa Layanan WWW jika Anda tidak memerlukan fungsi http. Misalnya, Anda dapat mengelola layanan Web melalui adaptor pendengar WCF, seperti NetTcpActivator, tanpa menjalankan Layanan WWW jika Anda tidak perlu mendengarkan permintaan HTTP di HTTP.sys. Untuk informasi tentang adaptor pendengar WCF dan tentang cara menghosting aplikasi WCF di IIS 7 dan yang lebih baru dengan menggunakan WAS, lihat Hosting di WCF di MSDN.
Manajemen Konfigurasi di WAS
Saat memulai, WAS membaca informasi tertentu dari file ApplicationHost.config, dan meneruskan informasi tersebut ke adaptor pendengar di server. Adaptor pendengar adalah komponen yang membangun komunikasi antara WAS dan pendengar protokol, seperti HTTP.sys. Setelah adaptor pendengar menerima informasi konfigurasi, mereka mengonfigurasi pendengar protokol terkait dan menyiapkan pendengar untuk mendengarkan permintaan.
Dalam kasus WCF, adaptor pendengar menyertakan fungsionalitas pendengar protokol. Jadi, adaptor pendengar WCF, seperti NetTcpActivator, dikonfigurasi berdasarkan informasi dari WAS. Setelah NetTcpActivator dikonfigurasi, netTcpActivator mendengarkan permintaan yang menggunakan protokol net.tcp. Untuk informasi selengkapnya tentang adaptor pendengar WCF, lihat Arsitektur Aktivasi WAS di MSDN.
Daftar berikut menjelaskan jenis informasi yang dibaca WAS dari konfigurasi:
- Informasi konfigurasi global
- Informasi konfigurasi protokol untuk protokol HTTP dan non-HTTP
- Konfigurasi kumpulan aplikasi, seperti informasi akun proses
- Konfigurasi situs, seperti pengikatan dan aplikasi
- Konfigurasi aplikasi, seperti protokol yang diaktifkan dan kumpulan aplikasi tempat aplikasi berada
Jika ApplicationHost.config perubahan, WAS menerima pemberitahuan dan memperbarui adaptor pendengar dengan informasi baru.
Manajemen Proses
WAS mengelola kumpulan aplikasi dan proses pekerja untuk permintaan HTTP dan non-HTTP. Ketika pendengar protokol mengambil permintaan klien, WAS menentukan apakah proses pekerja berjalan atau tidak. Jika kumpulan aplikasi sudah memiliki proses pekerja yang melayani permintaan, adaptor pendengar meneruskan permintaan ke proses pekerja untuk diproses. Jika tidak ada proses pekerja di kumpulan aplikasi, WAS akan memulai proses pekerja sehingga adaptor pendengar dapat meneruskan permintaan ke sana untuk diproses.
Catatan
Karena WAS mengelola proses untuk protokol HTTP dan non-HTTP, Anda dapat menjalankan aplikasi dengan protokol yang berbeda di kumpulan aplikasi yang sama. Misalnya, Anda dapat mengembangkan aplikasi, seperti layanan XML, dan menghostingnya melalui HTTP dan net.tcp.
Modul di IIS
IIS menyediakan arsitektur baru yang berbeda dari versi IIS sebelumnya. Alih-alih menjaga sebagian besar fungsionalitas dalam server itu sendiri, IIS menyertakan mesin server Web tempat Anda dapat menambahkan atau menghapus komponen, yang disebut modul, tergantung pada kebutuhan Anda.
Modul adalah fitur individual yang digunakan server untuk memproses permintaan. Misalnya, IIS menggunakan modul autentikasi untuk mengautentikasi kredensial klien, dan modul cache untuk mengelola aktivitas cache.
Arsitektur baru memberikan keuntungan berikut daripada versi IIS sebelumnya:
- Anda dapat mengontrol modul mana yang Anda inginkan di server.
- Anda dapat menyesuaikan server dengan peran tertentu di lingkungan Anda.
- Anda dapat menggunakan modul kustom untuk mengganti modul yang ada atau untuk memperkenalkan fitur baru.
Arsitektur baru juga meningkatkan keamanan dan menyederhanakan administrasi. Dengan menghapus modul yang tidak perlu, Anda mengurangi permukaan serangan server dan jejak memori, yang merupakan jumlah memori yang digunakan pekerja server pada komputer. Anda juga menghilangkan kebutuhan untuk mengelola fitur yang tidak perlu untuk situs dan aplikasi Anda.
Modul Aktif
Bagian berikut menjelaskan modul asli yang tersedia dengan penginstalan penuh IIS 7 dan yang lebih baru. Anda dapat menghapusnya atau menggantinya dengan modul kustom, tergantung pada kebutuhan Anda.
Modul HTTP
Beberapa modul di IIS 7 dan yang lebih baru melakukan tugas khusus untuk Hypertext Transfer Protocol (HTTP) dalam alur pemrosesan permintaan. Modul HTTP mencakup modul untuk menanggapi informasi dan pertanyaan yang dikirim di header klien, untuk mengembalikan kesalahan HTTP, untuk mengalihkan permintaan, dan banyak lagi.
Nama Modul | Deskripsi | Sumber daya |
---|---|---|
CustomErrorModule | Mengirim pesan kesalahan HTTP default dan dikonfigurasi saat kode status kesalahan diatur pada respons. | Inetsrv\Custerr.dll |
HttpRedirectionModule | Mendukung pengalihan yang dapat dikonfigurasi untuk permintaan HTTP. | Inetsrv\Redirect.dll |
ProtocolSupportModule | Melakukan tindakan terkait protokol, seperti mengatur header respons dan mengalihkan header berdasarkan konfigurasi. | Inetsrv\Protsup.dll |
RequestFilteringModule | Ditambahkan dalam IIS 7.5. Memfilter permintaan sebagaimana dikonfigurasi untuk mengontrol protokol dan perilaku konten. | Inetsrv\modrqflt.dll |
WebDAVModule | Ditambahkan dalam IIS 7.5. Memungkinkan penerbitan konten yang lebih aman dengan menggunakan HTTP melalui SSL. | Inetsrv\WebDAV.dll |
Modul Keamanan
Beberapa modul di IIS melakukan tugas yang terkait dengan keamanan dalam alur pemrosesan permintaan. Selain itu, ada modul terpisah untuk setiap skema autentikasi, yang memungkinkan Anda memilih modul untuk jenis autentikasi yang Anda inginkan di server Anda. Ada juga modul yang melakukan otorisasi URL, dan modul yang memfilter permintaan.
Nama Modul | Deskripsi | Sumber daya |
---|---|---|
AnonymousAuthenticationModule | Melakukan autentikasi Anonim ketika tidak ada metode autentikasi lain yang berhasil. | Inetsrv\Authanon.dll |
BasicAuthenticationModule | Melakukan autentikasi Dasar. | Inetsrv\Authbas.dll |
CertificateMappingAuthenticationModule | Melakukan autentikasi Pemetaan Sertifikat menggunakan Direktori Aktif. | Inetsrv\Authcert.dll |
DigestAuthenticationModule | Melakukan autentikasi Digest. | Inetsrv\Authmd5.dll |
IISCertificateMappingAuthenticationModule | Melakukan autentikasi Pemetaan Sertifikat menggunakan konfigurasi sertifikat IIS. | Inetsrv\Authmap.dll |
RequestFilteringModule | Melakukan tugas URLScan seperti mengonfigurasi kata kerja dan ekstensi nama file yang diizinkan, mengatur batas, dan memindai urutan karakter yang buruk. | Inetsrv\Modrqflt.dll |
UrlAuthorizationModule | Melakukan otorisasi URL. | Inetsrv\Urlauthz.dll |
WindowsAuthenticationModule | Melakukan autentikasi terintegrasi NTLM. | Inetsrv\Authsspi.dll |
IpRestrictionModule | Membatasi alamat IPv4 yang tercantum dalam daftar ipSecurity dalam konfigurasi. | Inetsrv\iprestr.dll |
Modul Konten
Beberapa modul di IIS melakukan tugas yang terkait dengan konten dalam alur pemrosesan permintaan. Modul konten mencakup modul untuk memproses permintaan file statis, untuk mengembalikan halaman default saat klien tidak menentukan sumber daya dalam permintaan, untuk mencantumkan konten direktori, dan banyak lagi.
Nama Modul | Deskripsi | Sumber daya |
---|---|---|
CgiModule | Menjalankan proses Common Gateway Interface (CGI) untuk membangun output respons. | Inetsrv\Cgi.dll |
DefaultDocumentModule | Mencoba mengembalikan dokumen default untuk permintaan yang dibuat ke direktori induk. | Inetsrv\Defdoc.dll |
DirectoryListingModule | Mencantumkan konten direktori. | Inetsrv\dirlist.dll |
IsapiModule | Menghosting DLL ekstensi ISAPI. | Inetsrv\Isapi.dll |
IsapiFilterModule | Mendukung DLL filter ISAPI. | Inetsrv\Filter.dll |
ServerSideIncludeModule | Proses sisi server menyertakan kode. | Inetsrv\Iis_ssi.dll |
StaticFileModule | Menyajikan file statis. | Inetsrv\Static.dll |
FastCgiModule | Mendukung FastCGI, yang menyediakan alternatif berkinerja tinggi untuk CGI. | Inetsrv\iisfcgi.dll |
Modul Pemadatan
Dua modul di IIS melakukan pemadatan dalam alur pemrosesan permintaan.
Nama Modul | Deskripsi | Sumber daya |
---|---|---|
DynamicCompressionModule | Mengompresi respons dan menerapkan pengkodatan transfer kompresi Gzip ke respons. | Inetsrv\Compdyn.dll |
StaticCompressionModule | Melakukan pra-kompresi konten statis. | Inetsrv\Compstat.dll |
Modul Penembolokan
Beberapa modul di IIS melakukan tugas yang terkait dengan penembolokan dalam alur pemrosesan permintaan. Penembolokan meningkatkan performa situs Web dan aplikasi Web Anda dengan menyimpan informasi yang diproses, seperti halaman Web, dalam memori di server, lalu menggunakan kembali informasi tersebut dalam permintaan berikutnya untuk sumber daya yang sama.
Nama Modul | Deskripsi | Sumber daya |
---|---|---|
FileCacheModule | Menyediakan penembolokan mode pengguna untuk file dan handel file. | Inetsrv\Cachfile.dll |
HTTPCacheModule | Menyediakan mode kernel dan penembolokan mode pengguna di HTTP.sys. | Inetsrv\Cachhttp.dll |
TokenCacheModule | Menyediakan penembolokan mode pengguna dari nama pengguna dan pasangan token untuk modul yang menghasilkan prinsipal pengguna Windows. | Inetsrv\Cachtokn.dll |
UriCacheModule | Menyediakan penembolokan mode pengguna informasi URL. | Inetsrv\Cachuri.dll |
Modul Pengelogan dan Diagnostik
Beberapa modul di IIS melakukan tugas yang terkait dengan pengelogan dan diagnostik dalam alur pemrosesan permintaan. Modul pengelogan mendukung pemuatan modul kustom dan meneruskan informasi ke HTTP.sys. Modul diagnostik mengikuti dan melaporkan peristiwa selama pemrosesan permintaan.
Nama Modul | Deskripsi | Sumber daya |
---|---|---|
CustomLoggingModule | Memuat modul pengelogan kustom. | Inetsrv\Logcust.dll |
FailedRequestsTracingModule | Mendukung fitur Pelacakan Permintaan Gagal. | Inetsrv\Iisfreb.dll |
HttpLoggingModule | Meneruskan informasi dan status pemrosesan ke HTTP.sys untuk pengelogan. | Inetsrv\Loghttp.dll |
RequestMonitorModule | Melacak permintaan yang saat ini dijalankan dalam proses pekerja dan melaporkan informasi dengan Status Runtime dan Control Application Programming Interface (RSCA). | Inetsrv\Iisreqs.dll |
TracingModule | Melaporkan peristiwa ke Microsoft Event Tracing for Windows (ETW). | Inetsrv\Iisetw.dll |
Modul Dukungan Terkelola
Beberapa modul di IIS mendukung integrasi terkelola dalam alur pemrosesan permintaan IIS.
Nama Modul | Deskripsi | Sumber daya |
---|---|---|
ManagedEngine | Menyediakan integrasi modul kode terkelola dalam alur pemrosesan permintaan IIS. | Microsoft.NET\Framework\v2.0.50727\webengine.dll |
ConfigurationValidationModule | Memvalidasi masalah konfigurasi, seperti ketika aplikasi berjalan dalam mode Terintegrasi tetapi memiliki penangan atau modul yang dideklarasikan di bagian system.web. | Inetsrv\validcfg.dll |
Modul Terkelola
Selain modul asli, IIS memungkinkan Anda menggunakan modul kode terkelola untuk memperluas fungsionalitas IIS. Beberapa modul terkelola, seperti UrlAuthorization, memiliki rekan modul asli yang menyediakan alternatif asli untuk modul terkelola.
Catatan
Modul terkelola bergantung pada modul ManagedEngine.
Tabel berikut mencantumkan modul terkelola yang tersedia dengan penginstalan penuh IIS 7 dan yang lebih baru. Untuk informasi selengkapnya tentang modul terkelola, lihat .NET Framework SDK 2.0 di MSDN.
Nama Modul | Deskripsi | Sumber daya |
---|---|---|
AnonimIdentifikasi | Mengelola pengidentifikasi anonim, yang digunakan oleh fitur yang mendukung identifikasi anonim seperti profil ASP.NET. | System.Web.Security.AnonymousIdentificationModule |
DefaultAuthentication | Memastikan bahwa objek autentikasi ada dalam konteks. | System.Web.Security.DefaultAuthenticationModule |
FileAuthorization | Memverifikasi bahwa pengguna memiliki izin untuk mengakses file yang diminta. | System.Web.Security.FileAuthorizationModule |
FormsAuthentication | Mendukung autentikasi dengan menggunakan autentikasi Formulir. | System.Web.Security.FormsAuthenticationModule |
OutputCache | Mendukung penembolokan output. | System.Web.Caching.OutputCacheModule |
Profil | Mengelola profil pengguna dengan menggunakan profil ASP.NET, yang menyimpan dan mengambil pengaturan pengguna di sumber data seperti database. | System.Web.Profile.ProfileModule |
RoleManager | Mengelola instans RolePrincipal untuk pengguna saat ini. | System.Web.Security.RoleManagerModule |
Sesi | Mendukung pemeliharaan status sesi, yang memungkinkan penyimpanan data khusus untuk satu klien dalam aplikasi di server. | System.Web.SessionState.SessionStateModule |
UrlAuthorization | Menentukan apakah pengguna saat ini diizinkan mengakses URL yang diminta, berdasarkan nama pengguna atau daftar peran di mana pengguna adalah anggota. | System.Web.Security.UrlAuthorizationModule |
UrlMappingsModule | Mendukung pemetaan URL nyata ke URL yang lebih ramah pengguna. | System.Web.UrlMappingsModule |
WindowsAuthentication | Mengatur identitas pengguna untuk aplikasi ASP.NET saat autentikasi Windows diaktifkan. | System.Web.Security.WindowsAuthenticationModule |
Pemrosesan Permintaan di IIS
Di IIS, alur permintaan IIS dan ASP.NET digabungkan untuk memproses permintaan dengan pendekatan terintegrasi. Arsitektur pemrosesan permintaan baru terdiri dari daftar modul asli dan terkelola yang diurutkan yang melakukan tugas tertentu sebagai respons terhadap permintaan.
Desain ini memberikan beberapa manfaat dibandingkan versi IIS sebelumnya. Pertama, semua jenis file dapat menggunakan fitur yang awalnya hanya tersedia untuk kode terkelola. Misalnya, Anda sekarang dapat menggunakan autentikasi ASP.NET Forms dan otorisasi Uniform Resource Locator (URL) untuk file statis, file Active Server Pages (ASP), dan semua jenis file lainnya di situs dan aplikasi Anda.
Kedua, desain ini menghilangkan duplikasi beberapa fitur di IIS dan ASP.NET. Misalnya, ketika klien meminta file terkelola, server memanggil modul autentikasi yang sesuai dalam alur terintegrasi untuk mengautentikasi klien. Di versi IIS sebelumnya, permintaan yang sama ini akan melalui proses autentikasi di alur IIS dan di alur ASP.NET.
Ketiga, Anda dapat mengelola semua modul di satu lokasi, alih-alih mengelola beberapa fitur di IIS dan beberapa dalam konfigurasi ASP.NET. Ini menyederhanakan administrasi situs dan aplikasi di server.
Kumpulan Aplikasi di IIS
Kumpulan aplikasi memisahkan aplikasi berdasarkan batas proses untuk mencegah aplikasi memengaruhi aplikasi lain di server. Di IIS 7 dan yang lebih baru, kumpulan aplikasi terus menggunakan mode isolasi proses pekerja IIS 6.0. Selain itu, Anda sekarang dapat menentukan pengaturan yang menentukan cara memproses permintaan yang melibatkan sumber daya terkelola: Mode terpadu atau mode Klasik.
Catatan
Dalam IIS 6.0, mode isolasi proses pekerja dan mode isolasi IIS 5.0 diatur di tingkat server. Ini membuatnya tidak mungkin untuk menjalankan kedua mode isolasi pada server yang sama. Namun, dalam IIS 7 dan yang lebih baru, Mode terintegrasi dan mode Klasik diatur pada tingkat kumpulan aplikasi, yang memungkinkan Anda menjalankan aplikasi secara bersamaan di kumpulan aplikasi dengan mode proses yang berbeda di server yang sama.
Mode kumpulan aplikasi terintegrasi
Ketika kumpulan aplikasi dalam mode Terintegrasi, Anda dapat memanfaatkan arsitektur pemrosesan permintaan terintegrasi dari IIS dan ASP.NET. Ketika proses pekerja di kumpulan aplikasi menerima permintaan, permintaan melewati daftar peristiwa yang diurutkan. Setiap peristiwa memanggil modul asli dan terkelola yang diperlukan untuk memproses bagian permintaan dan untuk menghasilkan respons.
Ada beberapa manfaat untuk menjalankan kumpulan aplikasi dalam mode Terintegrasi. Pertama, model pemrosesan permintaan IIS dan ASP.NET diintegrasikan ke dalam model proses terpadu. Model ini menghilangkan langkah-langkah yang sebelumnya diduplikasi di IIS dan ASP.NET, seperti autentikasi. Selain itu, Mode terintegrasi memungkinkan ketersediaan fitur terkelola ke semua jenis konten.
Mode kumpulan aplikasi klasik
Ketika kumpulan aplikasi dalam mode Klasik, IIS 7 dan yang lebih baru menangani permintaan dengan cara yang sama seperti dalam mode isolasi proses pekerja IIS 6.0. ASP.NET permintaan pertama kali melalui langkah-langkah pemrosesan asli di IIS dan kemudian dirutekan ke Aspnet_isapi.dll untuk pemrosesan kode terkelola dalam runtime terkelola. Akhirnya, permintaan dirutekan kembali melalui IIS untuk mengirim respons.
Pemisahan IIS dan model pemrosesan permintaan ASP.NET ini menghasilkan duplikasi beberapa langkah pemrosesan, seperti autentikasi dan otorisasi. Selain itu, fitur kode terkelola, seperti autentikasi Formulir, hanya tersedia untuk ASP.NET aplikasi atau aplikasi yang skripnya telah Anda petakan semua permintaan untuk ditangani oleh aspnet_isapi.dll.
Pastikan untuk menguji aplikasi yang ada untuk kompatibilitas dalam mode Terintegrasi sebelum meningkatkan lingkungan produksi ke IIS 7 dan yang lebih baru dan menetapkan aplikasi ke kumpulan aplikasi dalam mode Terintegrasi. Anda hanya boleh menambahkan aplikasi ke kumpulan aplikasi dalam mode Klasik jika aplikasi gagal berfungsi dalam mode Terintegrasi. Misalnya, aplikasi Anda mungkin mengandalkan token autentikasi yang diteruskan dari IIS ke runtime terkelola, dan, karena arsitektur baru di IIS 7 dan yang lebih baru, prosesnya merusak aplikasi Anda.
Pemrosesan Permintaan HTTP di IIS
IIS 7 dan yang lebih baru memiliki alur pemrosesan permintaan HTTP yang serupa dengan IIS 6.0. Diagram di bagian ini memberikan gambaran umum tentang permintaan HTTP dalam proses.
Daftar berikut ini menjelaskan alur pemrosesan permintaan yang diperlihatkan dalam Gambar 1:
- Ketika browser klien memulai permintaan HTTP untuk sumber daya di server Web, HTTP.sys mencegat permintaan.
- HTTP.sys kontak WAS untuk mendapatkan informasi dari penyimpanan konfigurasi.
- WAS meminta informasi konfigurasi dari penyimpanan konfigurasi, applicationHost.config.
- Layanan WWW menerima informasi konfigurasi, seperti kumpulan aplikasi dan konfigurasi situs.
- Layanan WWW menggunakan informasi konfigurasi untuk mengonfigurasi HTTP.sys.
- WAS memulai proses pekerja untuk kumpulan aplikasi tempat permintaan dibuat.
- Proses pekerja memproses permintaan dan mengembalikan respons terhadap HTTP.sys.
- Klien menerima respons.
Gambar 1: Gambaran Umum Permintaan HTTP
Dalam proses pekerja, permintaan HTTP melewati beberapa langkah yang diurutkan, yang disebut peristiwa, di Web Server Core. Pada setiap peristiwa, modul asli memproses bagian dari permintaan, seperti mengautentikasi pengguna atau menambahkan informasi ke log peristiwa. Jika permintaan memerlukan modul terkelola, modul ManagedEngine asli membuat AppDomain, di mana modul terkelola dapat melakukan pemrosesan yang diperlukan, seperti mengautentikasi pengguna dengan autentikasi Formulir. Ketika permintaan melewati semua peristiwa di Web Server Core, respons dikembalikan ke HTTP.sys. Gambar 2, di bawah ini, menunjukkan permintaan HTTP yang memasuki proses pekerja.
Gambar 2: Detail permintaan HTTP di dalam Proses Pekerja