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?
asp.net
asp.net-mvc
iis
iis-7
integrated-pipeline-mode
Jon Erickson
sumber
sumber
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.NETHttpHandler
dapat memiliki kemampuan yang hampir sama dengan ekstensi ISAPI. Dalam mode ini, ASP.NET pada dasarnya adalah bagian dari IIS.sumber
HttpModules
metode / acara diiis7
memiliki lebih banyak fungsi daripada diiis6
? Dapatkah Anda menguraikan itu ?Diambil dari: Apa perbedaan antara DefaultAppPool dan Classic .NET AppPool di IIS7?
Sumber asli: Pengantar Arsitektur IIS
sumber
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.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
danASP.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
)sumber
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.
sumber