ADS

ADS

Integarasi ASP.NET dan IIS7

Posted by Webb Matrix on Tuesday, December 20, 2011

Sejak dirilis, ASP.NET telah menjadi platform pilihan untuk mengembangkan aplikasi Web pada platform Windows / IIS. ASP.NET 2.0 mengambil pengembangan aplikasi Web ke tingkat yang baru, memungkinkan pengembang untuk membangun aplikasi yang lebih kuat lebih cepat daripada sebelumnya.
IIS 7 membutuhkan ASP.NET lebih lanjut dengan mengintegrasikan runtime ASP.NET model diperpanjang dengan server inti. Hal ini memungkinkan pengembang untuk sepenuhnya memperpanjang IIS 7 server dengan kekayaan dari ASP.NET 2.0 dan NET Framework., Daripada menggunakan IIS kurang mampu C + + API. Ada aplikasi ASP.NET juga segera mendapatkan keuntungan dari integrasi yang lebih kuat dengan menggunakan fitur yang ada seperti otentikasi Formulir ASP.NET, peran, dan caching output untuk semua konten.
Sementara IIS 7 memberikan integrasi ASP.NET ditingkatkan secara default, ada pilihan: IIS 7 mendukung baik baru dan lama modus integrasi ASP.NET yang dapat digunakan berdampingan pada server yang sama.
Artikel ini membahas perbaikan yang diperkenalkan oleh modus integrasi ASP.NET baru, arsitektur dari dua mode, dan menjelaskan bagaimana memilih dan mengkonfigurasi mode integrasi untuk aplikasi ASP.NET.

Perangkat tambahan ASP.NET di IIS 7

Integrasi yang lebih baik ASP.NET di IIS 7 meningkatkan aplikasi yang ada dan juga memungkinkan aplikasi baru untuk mengambil keuntungan dari fitur ASP.NET dalam cara-cara baru:
  • Layanan ASP.NET dapat digunakan untuk semua jenis konten. Di masa lalu, fungsionalitas ASP.NET seperti otentikasi Formulir, peran, otorisasi URL, dan output caching hanya tersedia untuk jenis konten ASP.NET seperti halaman ASPX. File statis, halaman ASP, dan jenis konten lainnya tidak dapat mengambil manfaat dari layanan ini.
Di IIS 7, semua layanan ASP.NET disediakan seragam untuk semua konten. Misalnya, Anda dapat melindungi semua konten web Anda, termasuk gambar dan halaman ASP, dengan ada solusi akses kontrol ASP.NET 2.0 dibangun di atas ASP.NET Formulir otentikasi, keanggotaan dan login kontrol.
  • Sepenuhnya memperpanjang IIS dengan ASP.NET. Versi sebelumnya diperpanjang server IIS sering diperlukan untuk dikembangkan dengan menggunakan filter ISAPI ekstensi asli atau modus diperpanjang, karena keterbatasan runtime ASP.NET.
IIS 7 memungkinkan ASP.NET modul untuk plug-in langsung ke pipa server, dengan kesetiaan runtime yang sama sebagai modul dikembangkan dengan asli (C + +) server API. Modul ASP.NET dapat mengeksekusi runtime di semua tahapan dari pipa permintaan pengolahan, dan dapat dieksekusi dalam urutan apapun sehubungan dengan modul asli. ASP.NET API juga diperluas untuk memungkinkan kontrol lebih atas memproses permintaan dari sebelumnya mungkin.
  • Server terpadu runtime. Ketat integrasi ASP.NET juga menyatukan banyak fitur antara IIS 7 dan ASP.NET.
IIS 7 menyediakan konfigurasi terpadu untuk modul IIS dan ASP.NET dan penangan. Banyak fitur lain, termasuk kesalahan kustom dan pelacakan, telah bersatu untuk memungkinkan manajemen yang lebih baik dan desain aplikasi kohesif.

ASP.NET Integrasi Arsitektur

Dalam 6,0 IIS dan rilis sebelumnya, ASP.NET dilaksanakan sebagai ekstensi ISAPI IIS.
Dalam rilis sebelumnya, IIS diproses permintaan untuk jenis konten ASP.NET dan kemudian diteruskan bahwa permintaan ke ASP.NET ISAPI DLL, yang menjadi tuan rumah pipa permintaan ASP.NET dan kerangka halaman. Permintaan untuk non-ASP.NET konten, seperti halaman ASP atau file statis, diproses oleh IIS atau ISAPI ekstensi dan tidak terlihat untuk ASP.NET.
Keterbatasan utama dari model ini adalah bahwa layanan yang diberikan oleh modul ASP.NET dan aplikasi kustom kode ASP.NET tidak tersedia untuk non-ASP.NET permintaan. Selain itu, modul ASP.NET tidak dapat mempengaruhi bagian-bagian tertentu dari memproses permintaan IIS yang terjadi sebelum dan setelah path eksekusi ASP.NET.

Gambar 1: IIS 6.0 & ASP.NET Pipa
Di IIS 7, ASP.NET permintaan pengolahan lapisan pipa pipa IIS secara langsung, pada dasarnya menyediakan pembungkus di atasnya, bukan memasukkan ke dalamnya.
IIS 7 proses permintaan yang datang untuk semua jenis konten, dengan kedua modul dan modul asli IIS ASP.NET menyediakan memproses permintaan di semua tahapan. Hal ini memungkinkan layanan yang disediakan oleh modul ASP.NET, seperti otentikasi Formulir atau cache output, yang akan digunakan untuk permintaan untuk ASP halaman, halaman PHP, file statis, dan sebagainya.
Kemampuan untuk plug-in langsung ke pipa server memungkinkan untuk mengganti modul ASP.NET, dijalankan sebelum, atau berjalan setelah setiap fungsi IIS 7. Hal ini memungkinkan, misalnya, ASP.NET otentikasi kustom modul dasar yang ditulis untuk menggunakan layanan Keanggotaan dan pengguna SQL Server database untuk menggantikan built-in fitur otentikasi IIS Dasar yang bekerja hanya dengan account Windows.
Selain itu, diperluas ASP.NET API menggunakan integrasi langsung untuk memungkinkan lebih permintaan-tugas-tugas pengolahan. Sebagai contoh, modul ASP.NET dapat memodifikasi header permintaan sebelum komponen lain memproses permintaan tersebut, dengan memasukkan header Terima-Bahasa sebelum aplikasi ASP mengeksekusi, yang memaksa konten lokal untuk dikirim kembali ke klien berdasarkan pada preferensi pengguna.

Gambar 2: IIS 7 Integrated mode
Karena integrasi runtime, IIS 7 dan ASP.NET dapat menggunakan konfigurasi yang sama untuk mengaktifkan dan ketertiban modul server, dan untuk mengkonfigurasi penangan pemetaan. Fungsi terpadu lainnya termasuk melacak, kesalahan kustom, dan output caching.

Kesesuaian

Paling menonjol, arsitektur ASP.NET runtime mempertahankan arsitektur dan API, yang memungkinkan ada aplikasi ASP.NET dan layanan untuk bekerja pada instalasi. Dengan modifikasi sedikit, ASP.NET yang ada aplikasi dan layanan dapat mengambil keuntungan dari kemampuan ASP.NET baru.
Demikian pula, pengembang dapat melanjutkan untuk menulis aplikasi baru untuk ASP.NET API biasa sementara mereka memanfaatkan keuntungan dari integrasi runtime.
IIS 7 terus menyediakan modus ASP.NET Klasik untuk aplikasi ASP.NET yang memiliki persyaratan kompatibilitas tertentu yang tidak dipenuhi oleh modus Terpadu. Administrator dapat memilih modus integrasi yang diinginkan per kolam aplikasi, yang memungkinkan aplikasi yang menggunakan kedua yang baru dan ASP.NET Klasik mode untuk fungsi sisi-by-side pada server yang sama.

Migrasi Aplikasi ASP.NET ke IIS 7 Modus Terpadu

Di IIS 7, ASP.NET dikonfigurasi untuk beroperasi dalam modus Terpadu baru secara default. Hal ini memungkinkan aplikasi Anda mengambil keuntungan dari perangkat tambahan modus Terintegrasi dengan sedikit modifikasi.
Karena penyatuan konfigurasi, beberapa aplikasi mungkin memerlukan migrasi untuk beroperasi dengan benar dalam mode Terpadu. Secara default, server menyediakan bantuan migrasi. Mendeteksi aplikasi yang memerlukan migrasi, dan mengembalikan pesan kesalahan yang meminta Anda bermigrasi aplikasi.
Konfigurasi berikut menyebabkan error migrasi:
  1. File web.config aplikasi mendefinisikan konfigurasi <httpModules>.
    Aplikasi ini memuat modul baru ASP.NET atau menghilangkan yang sudah ada.
    Dalam mode Terpadu, modul ASP.NET ditentukan dengan modul asli di bagian <system.webServer> / <modules> konfigurasi terpadu.
    Modul ASP.NET yang ditentukan di bagian konfigurasi <system.web> / <httpModules> harus dipindahkan ke bagian konfigurasi baru untuk mengambil efek. Selanjutnya, baru modul ASP.NET harus ditambahkan secara langsung ke bagian <modules> bersatu.
  2. File web.config aplikasi mendefinisikan konfigurasi <httpHandlers>.
    Aplikasi ini menggunakan pemetaan handler kustom untuk beberapa jenis konten.
    Dalam mode Terpadu, pemetaan penangan ASP.NET harus ditetapkan dalam bagian <system.webServer> / <handlers> konfigurasi terpadu untuk mengambil efek. Selanjutnya, baru ASP.NET handler pemetaan harus ditambahkan secara langsung ke bagian <handlers> bersatu.
    Bagian ini menggantikan baik konfigurasi ASP.NET <httpHandlers> dan IIS 7 scriptmaps konfigurasi, yang keduanya sebelumnya harus dikonfigurasi untuk mendirikan sebuah pemetaan ASP.NET handler.
  3. File web.config aplikasi <identity impersonate="true" mendefinisikan konfigurasi />.
    Aplikasi impersonates kredensial klien, yang paling umum dengan aplikasi intranet. Dalam mode Terpadu, klien penyamaran tidak tersedia di beberapa permintaan pengolahan tahap awal. Pada kebanyakan kasus, hal ini tidak masalah dan Anda dapat menonaktifkan kesalahan migrasi. Jika tidak, Anda harus mengkonfigurasi aplikasi ini untuk menjalankan dengan menggunakan modus Classic ASP.NET.
Ketika kesalahan migrasi yang dihasilkan, umumnya dapat baik bermigrasi konfigurasi aplikasi (disarankan dalam kasus 1 dan 2 di atas), atau memindahkan aplikasi untuk menggunakan modus Klasik ASP.NET (dalam kasus 3).

Migrasi Konfigurasi Aplikasi

IIS 7 bermigrasi aplikasi dengan menggunakan alat baris perintah appcmd.exe untuk melakukan migrasi. Pesan kesalahan migrasi berisi perintah yang dieksekusi di jendela baris perintah, yang harus dijalankan dengan hak pengguna administrator, untuk segera bermigrasi aplikasi Anda untuk modus Terpadu.
Format dasar dari perintah migrasi adalah sebagai berikut:
% Windir% <Application \ system32 \ inetsrv \ appcmd.exe bermigrasi config Path> Dimana <Application Path> adalah virtual path dari aplikasi yang berisi nama situs, seperti "Default Web Site/app1".
Ketika migrasi selesai, aplikasi Anda akan berjalan di kedua mode Terpadu dan Classic tanpa masalah.
Catatan: Jika Anda mengubah konfigurasi setelah migrasi, server tidak akan meminta Anda untuk bermigrasi lagi. Setelah migrasi awal, Anda harus memastikan bahwa konfigurasi Anda tetap dalam sinkronisasi antara dua mode. Anda dapat secara manual bermigrasi kembali aplikasi tersebut dengan menggunakan alat baris perintah appcmd.exe.

Pindah Kembali ke Mode Integrasi ASP.NET Klasik

Jika Anda lebih suka kembali ke modus ASP.NET Classic, memindahkan aplikasi Anda ke kolam aplikasi yang dikonfigurasi untuk menjalankan dalam modus Classic. Aplikasi lain terus berjalan dalam modus Terpadu baru sisi-by-side dengan aplikasi modus Classic.
Untuk informasi lebih lanjut tentang cara memindahkan aplikasi ke modus ASP.NET Classic, lihat Mengganti Mode ASP.NET untuk Permohonan.

Menonaktifkan Pesan Kesalahan Migrasi

Jika Anda memiliki konfigurasi manual bermigrasi atau ingin tetap dalam mode Terpadu tanpa migrasi konfigurasi anda (tidak disarankan), Anda dapat menonaktifkan pesan kesalahan migrasi dengan menambahkan berikut ini pada file web.config aplikasi:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</ System.webServer> Catatan: Server secara otomatis menonaktifkan pesan kesalahan setelah migrasi konfigurasi dengan alat baris perintah appcmd.exe.
Jika Anda secara manual menonaktifkan pesan kesalahan migrasi, Anda harus memastikan bahwa aplikasi Anda bekerja dengan benar dalam mode Terpadu, karena server tidak akan lagi memberikan peringatan tentang konfigurasi tidak didukung.

Mengubah Mode ASP.NET untuk Aplikasi

Jika aplikasi Anda tidak bekerja dengan benar dalam mode ASP.NET Terpadu, Anda dapat memindahkannya ke mode ASP.NET Klasik dengan berpindah ke lain kolam aplikasi. Setiap kolam aplikasi individual dikonfigurasi untuk menggunakan modus ASP.NET integrasi yang diinginkan. Hal ini memungkinkan Anda menjalankan kelompok aplikasi yang menggunakan mode integrasi yang berbeda ASP.NET sisi-by-side pada server yang sama.
Untuk mengubah modus ASP.NET integrasi untuk aplikasi:
  1. Menemukan atau membuat kolam aplikasi yang dikonfigurasi untuk menggunakan mode yang diinginkan.
    Secara default, semua kolam aplikasi baru berjalan dalam modus Terpadu.
    Set up ASP.NET menyediakan kolam aplikasi bernama "Klasik. AppPool NET" yang berjalan dalam modus integrasi ASP.NET klasik. Anda dapat menggunakan kolam aplikasi untuk aplikasi yang tidak boleh menjalankan dalam modus Terpadu.
    Anda juga dapat mengubah mode ASP.NET dari kolam aplikasi yang sudah ada dengan menggunakan IIS 7 Administration Tool atau perintah alat appcmd.exe baris, atau secara manual mengedit konfigurasi kolam aplikasi.
  2. Mengatur aplikasi untuk menggunakan kolam aplikasi.
    Setiap aplikasi dikonfigurasi untuk menggunakan kolam aplikasi tertentu. Secara default, semua aplikasi menggunakan kolam aplikasi default bernama "DefaultAppPool", yang berjalan dalam modus Terpadu.
    Anda dapat mengubah kolam aplikasi dari suatu aplikasi dengan menggunakan IIS 7 Administration Tool atau perintah alat appcmd.exe baris, atau secara manual mengedit konfigurasi aplikasi.

Memilih Versi ASP.NET untuk Aplikasi

Secara historis, IIS telah mendukung beberapa versi dari ASP.NET / CLR sisi-sisi oleh-. Sebagai contoh, IIS memungkinkan server yang sama untuk menjalankan aplikasi ASP.NET dengan menggunakan. NET Framework v1.1 dan v2.0. Dukungan ini diberikan oleh pemetaan versi yang sesuai dari ASPNET_isapi.dll untuk melayani permintaan untuk konten ASP.NET dengan menggunakan IIS 7 konfigurasi scriptmaps.
Sebagai contoh, Anda dapat menggunakan konfigurasi scriptMap berikut untuk mengaktifkan sisi-by-sisi dukungan:
  1. ASP.NET v1.1 aplikasi pada / app1:
    *. Aspx -> d: \ WINDOWS \ Microsoft.NET \ Framework \ v1.1.4322 \ aspnet_isapi.dll
  2. ASP.NET v2.0 aplikasi pada / app2:
    *. Aspx -> d: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll
Ketika aplikasi menerima permintaan *. aspx, IIS 7 beban aspnet_isapi.dll ditentukan, yang memuat versi CLR yang benar ke proses pekerja, dan proses permintaan.
ASP.NET juga menyediakan cara-cara berikut untuk mengkonfigurasi sisi-by-side scriptmaps:
  1. ASP.NET ekstensi MMC. Ketika Anda memilih versi ASP.NET untuk digunakan, ekstensi otomatis mengkonfigurasi scriptmaps untuk aplikasi untuk menunjuk ke versi yang benar dari aspnet_isapi.dll.
  2. ASP.NET aspnet_regiis.exe. Gunakan-i dan-r opsi untuk menginstal scriptmaps yang mengarah ke ASP.NET versi yang sesuai.
Sayangnya, karena keterbatasan kemampuan untuk memuat hanya satu versi CLR ke dalam suatu proses pekerja tunggal, Anda harus memastikan bahwa dua aplikasi yang menggunakan versi yang berbeda dari ASP.NET tidak pernah dikonfigurasi untuk tetap eksis dalam kolam aplikasi yang sama. Ketika kesalahan umum dibuat, permintaan pertama beban CLR dari aspnet_isapi.dll sesuai, dan permintaan berikutnya ke versi lain dalam kolam aplikasi yang sama akan gagal.
IIS 7 mengakui bahwa kolam aplikasi adalah versi ASP.NET yang Anda pilih untuk menjalankan aplikasi di bawah. Dengan demikian, versi ASP.NET CLR / yang dimuat di kolam aplikasi secara eksplisit dikonfigurasi dalam konfigurasi kolam aplikasi. Secara default, IIS 7 pra-beban CLR yang ditentukan oleh pengaturan ini ketika loading proses pekerja (kecuali versi dikonfigurasi untuk kosong).
. Karena kolam aplikasi Framework versi batas NET, Anda dapat mengubah versi dari aplikasi ASP.NET dengan melakukan hal berikut:
  1. Memindahkan aplikasi ke kolam aplikasi yang menggunakan versi ASP.NET diinginkan.
    Secara default, aplikasi menggunakan kolam aplikasi default bernama "DefaultAppPool," yang berjalan ASP.NET v2.1 dalam mode Terpadu. Memindahkan aplikasi ke "NET AppPool Klasik." Untuk menjalankan dalam modus Klasik ASP.NET v2.1, atau lain kolam aplikasi pilihan Anda.
  2. Konfigurasi kolam aplikasi di mana aplikasi berjalan untuk menggunakan versi ASP.NET diinginkan.
    Secara default, semua kolam aplikasi baru yang dikonfigurasi untuk menjalankan ASP.NET v2.1 dalam modus Terpadu.
Catatan: Jangan gunakan aspnet_regiis / i atau / r pilihan untuk mengkonfigurasi versi ASP.NET untuk aplikasi tertentu, atau global.
IIS 7 menggunakan pra-AC handler pemetaan untuk secara otomatis memilih set yang benar pemetaan handler (untuk ASPNET_isapi.dll dalam modus Classic atau langsung ke jenis pengendali dikelola dalam mode Terpadu) tergantung pada versi CLR dikonfigurasi dan dikelola modus integrasi dari kolam aplikasi. Para ASP.NET 2.0 Setup menginstal pemetaan ini pawang di tingkat server.

Mengambil Keuntungan dari mode Terpadu ASP.NET

Di IIS 7, aplikasi ASP.NET berjalan dalam modus Terpadu secara default. Namun, untuk mengambil keuntungan dari manfaat yang disediakan oleh integrasi yang lebih kuat, Anda harus membuat beberapa modifikasi untuk konfigurasi aplikasi. Anda juga dapat mengembangkan komponen baru ASP.NET yang memanfaatkan modus Terpadu untuk menyediakan fungsionalitas yang kuat untuk aplikasi Anda.

Mengaktifkan Layanan ASP.NET untuk Semua Jenis Konten

Dalam mode Terpadu, layanan yang disediakan oleh modul ASP.NET tersedia permintaan untuk semua jenis konten. Namun, secara default, modul ASP.NET dikonfigurasi untuk mengeksekusi hanya untuk permintaan untuk konten ASP.NET untuk kompatibilitas ke belakang.
Untuk melakukan ini, melampirkan prasyarat managedHandler untuk setiap modul ASP.NET di bagian konfigurasi pada tingkat server:
<modules>
<Tambahkan nama = "FormsAuthentication" type = "System.Web.Security.FormsAuthenticationModule"
Prekondisi = "managedHandler" />
<Tambahkan nama = "UrlAuthorization" type = "System.Web.Security.UrlAuthorizationModule"
Prekondisi = "managedHandler" />
...
</ Modul> Prasyarat adalah aturan bahwa server mengevaluasi pada setiap permintaan untuk menentukan apakah modul akan dieksekusi. Keharusan managedHandler hanya berlaku untuk permintaan untuk jenis konten yang dipetakan ke penangan ASP.NET.
Untuk menerapkan fungsionalitas yang disediakan oleh modul ASP.NET untuk semua permintaan, menghapus entri modul, dan kemudian menambahkannya kembali tanpa prasyarat dalam file web.config aplikasi akar.
Untuk mengaktifkan ASP.NET otentikasi Formulir untuk seluruh aplikasi, memodifikasi file web.config Anda sebagai berikut:
<modules>
<remove name="FormsAuthentication" />
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
...
</ Modul>
Dengan perubahan ini, modul FormsAuthentication dijalankan untuk semua permintaan dalam aplikasi Anda. Hal ini memungkinkan Anda melindungi semua konten aplikasi dengan otentikasi Formulir. Untuk informasi lebih lanjut tentang bagaimana memanfaatkan modus Terpadu untuk menyediakan otentikasi Formulir untuk semua konten aplikasi, lihat Mengambil Keuntungan dari mode walkthrough Pipeline Terpadu .
Anda juga dapat menggunakan shortcut untuk mengaktifkan semua dikelola (ASP.NET) modul untuk menjalankan untuk semua permintaan dalam aplikasi Anda, terlepas dari prasyarat "managedHandler". Untuk mengaktifkan semua modul berhasil lari untuk semua permintaan tanpa mengkonfigurasi setiap entri modul untuk menghapus "managedHandler" prasyarat, menggunakan properti runAllManagedModulesForAllRequests di bagian <modules>:
<modules runAllManagedModulesForAllRequests="true" />
Bila Anda menggunakan ini, "managedHandler" prasyarat tidak memiliki efek dan semua modul dikelola akan berjalan untuk semua permintaan.
Percobaan dengan modul ASP.NET memungkinkan lainnya untuk diterapkan ke seluruh aplikasi Anda. Sebagai contoh, menggunakan modul output ASP.NET cache ke halaman cache yang keluaran ASP, atau menggunakan Otorisasi URL dan Peran Manajer untuk mengkonfigurasi aturan akses kontrol untuk foto Anda. Atau, mengembangkan modul sendiri untuk membawa kekuatan ASP.NET untuk seluruh situs Web Anda.

Bangunan Lebih Powerfull ASP.NET Layanan

Dalam mode Terpadu, modul ASP.NET menerapkan layanan mereka untuk semua konten. Selain itu, karena modul ASP.NET mengeksekusi dalam pipa permintaan pengolahan terpadu dalam mode Terpadu, mereka berlangganan untuk permintaan tahap pengolahan yang sama dan melakukan tugas yang sama sebagai modul server yang asli. Pada saat yang sama, ASP.NET API tetap sebagian besar sama, dengan penambahan beberapa kunci yang membuka fungsionalitas yang sebelumnya tidak tersedia.

Runtime Fidelity

Dalam mode Terpadu, permintaan ASP.NET pengolahan tahap yang terkena modul secara langsung terhubung ke tahap yang sesuai dari pipa 7 IIS. Pipa lengkap berisi tahap-tahap berikut, yang terungkap sebagai peristiwa HttpApplication di ASP.NET:
  1. BeginRequest. Memproses permintaan dimulai.
  2. AuthenticateRequest. Permintaan tersebut otentik. IIS 7 dan ASP.NET otentikasi modul berlangganan ke tahap ini untuk melakukan otentikasi.
  3. PostAuthenticateRequest.
  4. AuthorizeRequest. Permintaan berwenang. IIS 7 dan ASP.NET modul otorisasi memeriksa apakah pengguna terotentikasi memiliki akses ke sumber daya yang diminta.
  5. PostAuthorizeRequest.
  6. ResolveRequestCache. Modul Cache memeriksa apakah respon untuk permintaan ini ada dalam cache, dan kembali itu bukan melanjutkan dengan sisa jalur eksekusi. Kedua output ASP.NET Cache dan fitur IIS Keluaran 7 Cache mengeksekusi.
  7. PostResolveRequestCache.
  8. MapRequestHandler. Tahap ini bersifat internal dalam ASP.NET dan digunakan untuk menentukan handler permintaan.
  9. PostMapRequestHandler.
  10. AcquireRequestState. Negara yang diperlukan untuk pelaksanaan permintaan diambil. Sesi ASP.NET Negara dan Profil modul mendapatkan data mereka.
  11. PostAcquireRequestState.
  12. PreExecuteRequestHandler. Setiap tugas sebelum eksekusi dilakukan pawang.
  13. ExecuteRequestHandler. Penangan permintaan dijalankan. Halaman ASPX, halaman ASP, program CGI, dan file statis dilayani.
  14. PostExecuteRequestHandler
  15. ReleaseRequestState. Perubahan permintaan negara disimpan, dan negara dibersihkan di sini. Sesi ASP.NET Negara dan Profil modul menggunakan tahap ini untuk pembersihan.
  16. PostReleaseRequestState.
  17. UpdateRequestCache. Respon disimpan di cache untuk penggunaan masa depan. Output ASP.NET Cache dan modul output IIS 7 Cache mengeksekusi untuk menyimpan cache respon terhadap mereka.
  18. PostUpdateRequestCache.
  19. LogRequest. Tahap ini log hasil dari permintaan, dan dijamin untuk mengeksekusi bahkan jika terjadi kesalahan.
  20. PostLogRequest.
  21. EndRequest. Tahap ini melakukan pembersihan setiap permintaan terakhir, dan dijamin untuk mengeksekusi bahkan jika terjadi kesalahan.
Dengan menggunakan ASP.NET API akrab, kemampuan untuk mengeksekusi dalam tahap yang sama seperti IIS 7 modul membuat tugas-tugas yang sebelumnya hanya dapat diakses dalam filter ISAPI asli dan ekstensi sekarang mungkin dalam kode dikelola. Misalnya, Anda sekarang dapat menulis modul yang melakukan hal berikut:
  1. Mencegat permintaan sebelum proses pengolahan telah terjadi, misalnya penyaringan keamanan atau melakukan penulisan ulang URL.
  2. Ganti built-in mode otentikasi.
  3. Memodifikasi isi permintaan yang masuk, seperti header permintaan.
  4. Filter tanggapan keluar untuk semua jenis konten.
Lihat Mengembangkan Modul IIS 7 dengan NET. untuk contoh yang baik bagaimana untuk memperpanjang IIS 7 dengan modul otentikasi ASP.NET kustom.

Perluasan ASP.NET API

API ASP.NET tetap kompatibel dengan rilis sebelumnya, yang memungkinkan modul yang ada untuk bekerja di IIS 7 tanpa modifikasi, dan berlaku untuk semua konten aplikasi tanpa perubahan kode.
Namun, modul yang ditulis untuk IIS 7 modus Terpadu dapat mengambil keuntungan dari beberapa tambahan API untuk mengaktifkan kunci permintaan pengolahan skenario yang sebelumnya tidak tersedia.
Koleksi HttpResponse.Headers baru memungkinkan modul untuk memeriksa dan memanipulasi header respon bahwa komponen aplikasi lainnya menghasilkan. Misalnya, Anda dapat mengubah header Content-Type yang dihasilkan oleh sebuah halaman ASP untuk meminta kotak dialog download di browser. Koleksi Cookies pada kelas HttpResponse juga ditingkatkan untuk memungkinkan modifikasi dari cookie yang dihasilkan sebagai bagian dari proses permintaan, bahkan jika mereka dibuat di luar dari ASP.NET.
Koleksi HttpRequest.Headers adalah menulis-diaktifkan, yang memungkinkan modul untuk memanipulasi header permintaan yang masuk. Gunakan ini untuk mengubah perilaku komponen server lainnya - misalnya, Anda dapat memaksa aplikasi lokal untuk merespon ke klien dalam bahasa yang berbeda dengan dinamis mengubah nilai dari header Terima-Bahasa.
Akhirnya, koleksi HttpRequest.ServerVariables sekarang ditulisi, yang memungkinkan IIS 7 variabel server yang akan ditetapkan. Modul ASP.NET menggunakan fungsi ini untuk mengubah nilai-nilai yang disediakan oleh IIS 7, dan untuk menciptakan variabel server baru yang terlihat dengan kerangka kerja aplikasi lain, seperti PHP.

Integrasi runtime

Selain API baru, modus Terpadu memungkinkan fungsionalitas yang ada ASP.NET untuk memberikan nilai lebih untuk aplikasi Anda.
Fasilitas penelusuran yang disediakan oleh ASP.NET, termasuk kelas System.Diagnostics.Trace dan halaman ASP.NET fitur pelacakan, sekarang memancarkan informasi ke dalam sistem melacak jejak IIS 7. Hal ini memungkinkan informasi jejak yang dihasilkan selama pemrosesan permintaan kedua IIS 7 dan ASP.NET komponen untuk ditempatkan di file log tunggal, memfasilitasi diagnostik yang lebih baik dari masalah server.
The ASP.NET respon-fitur penyaringan, yang memungkinkan tanggapan yang akan diubah dengan menggunakan antarmuka Streaming sebelum pergi ke klien, ditingkatkan untuk memungkinkan penyaringan non-ASP.NET konten. Oleh karena itu, Anda dapat menggunakan ASP.NET filtering pada semua konten server, atau selektif menginstal filter hanya untuk permintaan untuk konten yang ingin Anda proses. Dengan kemampuan ini, Anda dapat menulis fitur penyaringan yang menyuntikkan atau menyensor konten tertentu dalam respon situs, terlepas dari apakah konten ini berasal dari halaman aspx atau file statis.

Blog, Updated at: 2:35 PM

0 comments:

Post a Comment

GEO CITY

SOSMED SHARE

Powered by Blogger.