Bagikan melalui


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:

  1. Ketika browser klien memulai permintaan HTTP untuk sumber daya di server Web, HTTP.sys mencegat permintaan.
  2. HTTP.sys kontak WAS untuk mendapatkan informasi dari penyimpanan konfigurasi.
  3. WAS meminta informasi konfigurasi dari penyimpanan konfigurasi, applicationHost.config.
  4. Layanan WWW menerima informasi konfigurasi, seperti kumpulan aplikasi dan konfigurasi situs.
  5. Layanan WWW menggunakan informasi konfigurasi untuk mengonfigurasi HTTP.sys.
  6. WAS memulai proses pekerja untuk kumpulan aplikasi tempat permintaan dibuat.
  7. Proses pekerja memproses permintaan dan mengembalikan respons terhadap HTTP.sys.
  8. Klien menerima respons.

Diagram memperlihatkan klien dalam Mode Kernel berinteraksi dengan elemen dalam Mode Pengguna seperti yang dijelaskan di atas.

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.

Diagram memperlihatkan Proses Pekerja, yang berisi Inti Server Web, yang ditautkan ke Modul Asli, yang ditautkan ke AppDomain.

Gambar 2: Detail permintaan HTTP di dalam Proses Pekerja