Modul IIS dengan ASP.NET Core
Catatan
Ini bukan versi terbaru dari artikel ini. Untuk rilis saat ini, lihat versi .NET 8 dari artikel ini.
Peringatan
Versi ASP.NET Core ini tidak lagi didukung. Untuk informasi selengkapnya, lihat Kebijakan Dukungan .NET dan .NET Core. Untuk rilis saat ini, lihat versi .NET 8 dari artikel ini.
Penting
Informasi ini berkaitan dengan produk pra-rilis yang mungkin dimodifikasi secara substansial sebelum dirilis secara komersial. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Untuk rilis saat ini, lihat versi .NET 8 dari artikel ini.
Beberapa modul IIS asli dan semua modul terkelola IIS tidak dapat memproses permintaan untuk aplikasi ASP.NET Core. Dalam banyak kasus, ASP.NET Core menawarkan alternatif untuk skenario yang ditangani oleh modul asli dan terkelola IIS.
Modul asli
Tabel menunjukkan modul IIS asli yang berfungsi dengan aplikasi ASP.NET Core dan Modul inti ASP.NET.
Modul | Fungsional dengan aplikasi ASP.NET Core | Opsi inti ASP.NET |
---|---|---|
Autentikasi AnonimAnonymousAuthenticationModule |
Ya | |
Autentikasi DasarBasicAuthenticationModule |
Ya | |
Autentikasi Pemetaan Sertifikasi KlienCertificateMappingAuthenticationModule |
Ya | |
CGICgiModule |
No | |
Validasi KonfigurasiConfigurationValidationModule |
Ya | |
Kesalahan HTTPCustomErrorModule |
No | Middleware Halaman Kode Status |
Pengelogan KustomCustomLoggingModule |
Ya | |
Dokumen DefaultDefaultDocumentModule |
No | Middleware File Default |
Autentikasi HashDigestAuthenticationModule |
Ya | |
Penjelajahan DirektoriDirectoryListingModule |
No | Middleware Penjelajahan Direktori |
Pemadatan DinamisDynamicCompressionModule |
Ya | Middleware Pemadatan Respons |
Pelacakan Permintaan GagalFailedRequestsTracingModule |
Ya | Pengelogan ASP.NET Core |
Penembolokan FileFileCacheModule |
No | Middleware Penembolokan Respons |
Penembolokan HTTPHttpCacheModule |
No | Middleware Penembolokan Respons |
Pengelogan HTTPHttpLoggingModule |
Ya | Pengelogan ASP.NET Core |
Pengalihan HTTPHttpRedirectionModule |
Ya | Middleware Penulisan Ulang URL |
Pelacakan HTTPTracingModule |
Ya | |
Autentikasi Pemetaan Sertifikat Klien IISIISCertificateMappingAuthenticationModule |
Ya | |
Pembatasan IP dan DomainIpRestrictionModule |
Ya | |
Filter ISAPIIsapiFilterModule |
Ya | Middleware |
ISAPIIsapiModule |
Ya | Middleware |
Dukungan ProtokolProtocolSupportModule |
Ya | |
Pemfilteran PermintaanRequestFilteringModule |
Ya | Middleware Penulisan Ulang URL IRule |
Pemantau PermintaanRequestMonitorModule |
Ya | |
Penulisan Ulang URL†RewriteModule |
Ya | Middleware Penulisan Ulang URL |
Sisi Server MencakupServerSideIncludeModule |
No | |
Kompresi StatisStaticCompressionModule |
No | Middleware Pemadatan Respons |
Konten StatisStaticFileModule |
No | Middleware File Statik |
Penembolokan TokenTokenCacheModule |
Ya | |
Penembolokan URIUriCacheModule |
Ya | |
Otorisasi URLUrlAuthorizationModule |
Ya | ASP.NET Core Identity |
WebDavWebDAV |
No | |
Autentikasi WindowsWindowsAuthenticationModule |
Ya |
†Tipe Modul isFile
Penulisan Ulang URL dan isDirectory
jenis kecocokan tidak berfungsi dengan aplikasi ASP.NET Core karena perubahan struktur direktori.
Modul terkelola
Modul terkelola tidak berfungsi dengan aplikasi ASP.NET Core yang dihosting saat versi .NET CLR kumpulan aplikasi diatur ke Tanpa Kode Terkelola. ASP.NET Core menawarkan alternatif middleware dalam beberapa kasus.
Modul | Opsi inti ASP.NET |
---|---|
AnonimIdentifikasi | |
DefaultAuthentication | |
FileAuthorization | |
FormsAuthentication | Cookie Middleware Autentikasi |
OutputCache | Middleware Penembolokan Respons |
Profil | |
RoleManager | |
ScriptModule-4.0 | |
Sesi | Middleware Sesi |
UrlAuthorization | |
UrlMappingsModule | Middleware Penulisan Ulang URL |
UrlRoutingModule-4.0 | ASP.NET Core Identity |
WindowsAuthentication |
Perubahan aplikasi Manajer IIS
Saat menggunakan IIS Manager untuk mengonfigurasi pengaturan, file web.config aplikasi diubah. Jika menyebarkan aplikasi dan menyertakan web.config, setiap perubahan yang dilakukan dengan IIS Manager ditimpa oleh file web.config yang disebarkan. Jika perubahan dilakukan pada file web.config server, salin file web.config yang diperbarui di server ke proyek lokal segera.
Menonaktifkan modul IIS
Jika modul IIS dikonfigurasi di tingkat server yang harus dinonaktifkan untuk aplikasi, tambahan ke file web.config aplikasi dapat menonaktifkan modul. Biarkan modul di tempat dan nonaktifkan menggunakan pengaturan konfigurasi (jika tersedia) atau hapus modul dari aplikasi.
Pennonaktifkan modul
Banyak modul menawarkan pengaturan konfigurasi yang memungkinkannya dinonaktifkan tanpa menghapus modul dari aplikasi. Ini adalah cara paling sederhana dan tercepat untuk menonaktifkan modul. Misalnya, Modul Pengalihan HTTP dapat dinonaktifkan dengan <httpRedirect>
elemen di web.config:
<configuration>
<system.webServer>
<httpRedirect enabled="false" />
</system.webServer>
</configuration>
Untuk informasi selengkapnya tentang menonaktifkan modul dengan pengaturan konfigurasi, ikuti tautan di bagian Elemen Turunan dari IIS <system.webServer>.
Penghapusan modul
Jika memilih untuk menghapus modul dengan pengaturan di web.config, buka kunci modul dan buka kunci <modules>
bagian web.config terlebih dahulu:
Buka kunci modul di tingkat server. Pilih server IIS di bilah samping Koneksi Manajer IIS. Buka Modul di area IIS. Pilih modul dalam daftar. Di bar samping Tindakan di sebelah kanan, pilih Buka kunci. Jika entri tindakan untuk modul muncul sebagai Kunci, modul sudah tidak terkunci, dan tidak ada tindakan yang diperlukan. Buka kunci modul sebanyak yang Anda rencanakan untuk dihapus dari web.config nanti.
Sebarkan aplikasi tanpa
<modules>
bagian di web.config. Jika aplikasi disebarkan dengan web.config yang berisi<modules>
bagian tanpa membuka kunci bagian terlebih dahulu di Manajer IIS, Configuration Manager melemparkan pengecualian saat mencoba membuka kunci bagian. Oleh karena itu, sebarkan aplikasi tanpa<modules>
bagian.Buka kunci bagian
<modules>
web.config. Di bilah samping Koneksi , pilih situs web di Situs. Di area Manajemen, buka Editor Konfigurasi. Gunakan kontrol navigasi untuk memilih bagiansystem.webServer/modules
. Di bar samping Tindakan di sebelah kanan, pilih untuk Membuka kunci bagian. Jika entri tindakan untuk bagian modul muncul sebagai Kunci Bagian, bagian modul sudah dibuka kuncinya, dan tidak ada tindakan yang diperlukan.<modules>
Tambahkan bagian ke file web.config lokal aplikasi dengan<remove>
elemen untuk menghapus modul dari aplikasi. Tambahkan beberapa<remove>
elemen untuk menghapus beberapa modul. Jika perubahan web.config dilakukan di server, segera buat perubahan yang sama pada file web.config proyek secara lokal. Menghapus modul menggunakan pendekatan ini tidak memengaruhi penggunaan modul dengan aplikasi lain di server.<configuration> <system.webServer> <modules> <remove name="MODULE_NAME" /> </modules> </system.webServer> </configuration>
Untuk menambahkan atau menghapus modul untuk IIS Express menggunakan web.config, ubah applicationHost.config untuk membuka kunci bagian <modules>
:
Buka {APPLICATION ROOT}\.vs\config\applicationhost.config.
<section>
Temukan elemen untuk modul IIS dan ubahoverrideModeDefault
dariDeny
keAllow
:<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />
Temukan bagian .
<location path="" overrideMode="Allow"><system.webServer><modules>
Untuk modul apa pun yang ingin Anda hapus, aturlockItem
daritrue
kefalse
. Dalam contoh berikut, Modul CGI tidak terkunci:<add name="CgiModule" lockItem="false" />
<modules>
Setelah bagian dan modul individual tidak terkunci, Anda bebas untuk menambahkan atau menghapus modul IIS menggunakan file web.config aplikasi untuk menjalankan aplikasi di IIS Express.
Modul IIS juga dapat dihapus dengan Appcmd.exe. MODULE_NAME
Berikan dan APPLICATION_NAME
dalam perintah:
Appcmd.exe delete module MODULE_NAME /app.name:APPLICATION_NAME
Misalnya, hapus DynamicCompressionModule
dari Situs Web Default:
%windir%\system32\inetsrv\appcmd.exe delete module DynamicCompressionModule /app.name:"Default Web Site"
Konfigurasi modul minimum
Satu-satunya modul yang diperlukan untuk menjalankan aplikasi ASP.NET Core adalah Modul Autentikasi Anonim dan Modul Inti ASP.NET.
Modul Penembolokan URI (UriCacheModule
) memungkinkan IIS untuk menyimpan konfigurasi situs web di tingkat URL. Tanpa modul ini, IIS harus membaca dan mengurai konfigurasi pada setiap permintaan, bahkan ketika URL yang sama berulang kali diminta. Mengurai konfigurasi setiap permintaan menghasilkan penalti performa yang signifikan. Meskipun Modul Penembolokan URI tidak benar-benar diperlukan agar aplikasi ASP.NET Core yang dihosting berjalan, sebaiknya Modul Penembolokan URI diaktifkan untuk semua penyebaran inti ASP.NET.
Modul Penembolokan HTTP (HttpCacheModule
) mengimplementasikan cache output IIS dan juga logika untuk penembolokan item di cache HTTP.sys. Tanpa modul ini, konten tidak lagi di-cache dalam mode kernel, dan profil cache diabaikan. Menghapus Modul Penembolokan HTTP biasanya memiliki efek buruk pada performa dan penggunaan sumber daya. Meskipun Modul Penembolokan HTTP tidak benar-benar diperlukan agar aplikasi ASP.NET Core yang dihosting berjalan, sebaiknya Modul Penembolokan HTTP diaktifkan untuk semua penyebaran inti ASP.NET.
Sumber Daya Tambahan:
ASP.NET Core