Saya menggunakan aplikasi ASP.NET MVC tadi malam, dan menemukan bahwa kurang bekerja untuk menggunakan IIS7 yang diatur ke mode terintegrasi. Pertanyaan saya adalah apa bedanya? Dan apa implikasi dari menggunakan satu atau yang lain?
Saya menggunakan aplikasi ASP.NET MVC tadi malam, dan menemukan bahwa kurang bekerja untuk menggunakan IIS7 yang diatur ke mode terintegrasi. Pertanyaan saya adalah apa bedanya? Dan apa implikasi dari menggunakan satu atau yang lain?
Jawaban:
Mode klasik (satu-satunya mode di IIS6 dan di bawah) adalah mode di mana IIS hanya bekerja dengan ekstensi ISAPI dan filter ISAPI secara langsung. Bahkan, dalam mode ini, ASP.NET hanyalah ekstensi ISAPI (aspnet_isapi.dll) dan filter ISAPI (aspnet_filter.dll). IIS hanya memperlakukan ASP.NET sebagai plugin eksternal yang diimplementasikan di ISAPI dan bekerja dengannya seperti kotak hitam (dan hanya jika perlu memberikan permintaan ke ASP.NET). Dalam mode ini, ASP.NET tidak jauh berbeda dari PHP atau teknologi lainnya untuk IIS.
Mode terintegrasi, di sisi lain, adalah mode baru di IIS7 di mana pipa IIS terintegrasi erat (yaitu sama) dengan pipa permintaan ASP.NET. ASP.NET dapat melihat setiap permintaan yang diinginkan dan memanipulasi hal-hal di sepanjang jalan. ASP.NET tidak lagi diperlakukan sebagai plugin eksternal. Ini sepenuhnya dicampur dan terintegrasi dalam IIS. Dalam mode ini, ASP.NET HttpModule
pada dasarnya memiliki kekuatan yang hampir sama dengan yang dimiliki filter ISAPI dan ASP.NET HttpHandler
dapat memiliki kemampuan yang hampir sama dengan ekstensi ISAPI. Dalam mode ini, ASP.NET pada dasarnya adalah bagian dari IIS.
HttpModules
metode / acara di iis7
memiliki lebih banyak fungsi daripada di iis6
? Dapatkah Anda menguraikan itu ?
Mode kumpulan aplikasi terintegrasi
Ketika kumpulan aplikasi dalam mode Terpadu, Anda dapat mengambil keuntungan dari arsitektur pemrosesan-permintaan terintegrasi IIS dan ASP.NET. Ketika seorang pekerja proses dalam kumpulan aplikasi menerima permintaan, permintaan melewati daftar acara yang dipesan. Setiap peristiwa memanggil modul asli dan dikelola yang diperlukan untuk memproses bagian dari permintaan dan menghasilkan respons.
Ada beberapa manfaat untuk menjalankan kumpulan aplikasi dalam mode Terpadu. Pertama model pemrosesan-permintaan IIS dan ASP.NET diintegrasikan ke dalam model proses terpadu. Model ini menghilangkan langkah-langkah yang sebelumnya diduplikasi dalam IIS dan ASP.NET, seperti otentikasi. Selain itu, mode Terpadu memungkinkan ketersediaan fitur yang dikelola untuk semua jenis konten.
Mode kumpulan aplikasi klasik
Ketika kumpulan aplikasi dalam mode Klasik, IIS 7.0 menangani permintaan seperti dalam mode isolasi proses pekerja IIS 6.0. Permintaan ASP.NET terlebih dahulu melalui langkah-langkah pemrosesan asli di IIS dan kemudian dialihkan ke Aspnet_isapi.dll untuk memproses kode yang dikelola dalam runtime yang dikelola. Akhirnya, permintaan dialihkan kembali melalui IIS untuk mengirim respons.
Pemisahan model pemrosesan-permintaan IIS dan ASP.NET ini menghasilkan duplikasi beberapa langkah pemrosesan, seperti otentikasi dan otorisasi. Selain itu, fitur kode terkelola, seperti otentikasi formulir, hanya tersedia untuk aplikasi ASP.NET atau aplikasi yang skrip Anda memetakan semua permintaan untuk ditangani oleh aspnet_isapi.dll.
Pastikan untuk menguji kompatibilitas aplikasi Anda yang ada dalam mode Terpadu sebelum memutakhirkan lingkungan produksi ke IIS 7.0 dan menugaskan aplikasi ke kumpulan aplikasi dalam mode Terpadu. Anda hanya harus menambahkan aplikasi ke kumpulan aplikasi dalam mode Klasik jika aplikasi gagal bekerja dalam mode Terpadu. Misalnya, aplikasi Anda mungkin bergantung pada token otentikasi yang diteruskan dari IIS ke runtime yang dikelola, dan, karena arsitektur baru di IIS 7.0, proses tersebut memecah aplikasi Anda.
Diambil dari: Apa perbedaan antara DefaultAppPool dan Classic .NET AppPool di IIS7?
Sumber asli: Pengantar Arsitektur IIS
IIS 6.0 dan versi sebelumnya:
ASP.NET terintegrasi dengan IIS melalui ekstensi ISAPI, API C (API berbasis bahasa Pemrograman C) dan membuka aplikasi sendiri dan model pemrosesan permintaan.
Ini secara efektif memaparkan dua jalur pipa server (permintaan / respons) yang terpisah, satu untuk filter ISAPI asli dan komponen ekstensi, dan satu lagi untuk komponen aplikasi yang dikelola. Komponen ASP.NET akan mengeksekusi seluruhnya di dalam gelembung ekstensi ASP.NET ISAPI DAN HANYA untuk permintaan yang dipetakan ke ASP.NET dalam konfigurasi peta skrip IIS.
Permintaan untuk jenis konten non ASP.NET: - gambar, file teks, halaman HTML, dan halaman ASP tanpa skrip, diproses oleh IIS atau ekstensi ISAPI lainnya dan TIDAK dapat dilihat oleh ASP.NET.
Keterbatasan utama dari model ini adalah bahwa layanan yang disediakan oleh modul ASP.NET dan kode aplikasi ASP.NET kustom TIDAK tersedia untuk permintaan non ASP.NET
Apa itu PETA SCRIPT?
Peta skrip digunakan untuk mengaitkan ekstensi file dengan penangan ISAPI yang dieksekusi ketika tipe file itu diminta. Peta skrip juga memiliki pengaturan opsional yang memverifikasi bahwa file fisik yang terkait dengan permintaan ada sebelum mengizinkan permintaan untuk diproses
Contoh yang bagus bisa seen here
IIS 7 ke atas
IIS 7.0 dan di atasnya telah direkayasa ulang dari bawah ke atas untuk menyediakan ISAPI berbasis C ++ API yang baru.
IIS 7.0 dan di atasnya mengintegrasikan runtime ASP.NET dengan fungsionalitas inti dari Server Web, menyediakan pipa pemrosesan permintaan tunggal (tunggal) yang terpapar komponen asli dan terkelola yang dikenal sebagai modul (IHttpModules)
Apa artinya ini adalah bahwa IIS 7 memproses permintaan yang datang untuk semua jenis konten, dengan keduanya NON ASP.NET Modules / native IIS modules
dan ASP.NET modules
menyediakan pemrosesan permintaan di semua tahapan. Ini adalah alasan mengapa jenis konten NON ASP.NET (.html, file statis) dapat ditangani oleh modul .NET .
IHttpModule
) yang memiliki kemampuan untuk mengeksekusi untuk semua konten aplikasi, dan menyediakan serangkaian layanan pemrosesan permintaan yang ditingkatkan untuk aplikasi Anda.IHttpHandler
)Dalam mode klasik, IIS berfungsi langsung dengan ekstensi ISAPI dan filter ISAPI. Dan menggunakan dua jalur pipa, satu untuk kode asli dan lainnya untuk kode yang dikelola. Anda dapat mengatakan bahwa dalam mode Klasik IIS 7.x berfungsi seperti halnya IIS 6 dan Anda tidak mendapatkan manfaat tambahan dari fitur IIS 7.x.
Dalam mode terintegrasi IIS dan ASP.Net digabungkan dengan erat daripada hanya bergantung pada dua DLL di Asp.net seperti dalam kasus mode klasik.