<modules runAllManagedModulesForAllRequests = "true" /> Artinya

133

Saya ingin tahu apa artinya

<modules runAllManagedModulesForAllRequests="true" />

Saya menggunakan IIS 7.5 dan saya memiliki aplikasi web sederhana. Apakah saya perlu menulis ini di file web.config saya. Saya juga menulis beberapa http handler untuk panggilan ajax jquery. Saya menggunakan otentikasi formulir dan asp.net 4.0.

Bagaimana saya bisa menentukan modul mana yang harus saya jalankan dan mana yang tidak?

.ेखर
sumber

Jawaban:

122

Prasyarat Modul:

Mesin inti IIS menggunakan prasyarat untuk menentukan kapan harus mengaktifkan modul tertentu. Alasan kinerja, misalnya, mungkin menentukan bahwa Anda hanya ingin menjalankan modul terkelola untuk permintaan yang juga masuk ke handler terkelola. Prasyarat dalam contoh berikut ( precondition="managedHandler") hanya memungkinkan modul autentikasi formulir untuk permintaan yang juga ditangani oleh penangan terkelola, seperti permintaan file .aspx atau .asmx:

<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />

Jika Anda menghapus atribut precondition="managedHandler", Formulir Otentikasi juga berlaku untuk konten yang tidak dilayani oleh penangan terkelola, seperti .html, .jpg, .doc, tetapi juga untuk ekstensi ASP (.asp) atau PHP (.php) klasik. Lihat " Cara Mengambil Keuntungan dari IIS Integrated Pipeline " untuk contoh mengaktifkan modul ASP.NET untuk dijalankan untuk semua konten.

Anda juga dapat menggunakan pintasan untuk mengaktifkan semua modul yang dikelola (ASP.NET) untuk menjalankan semua permintaan dalam aplikasi Anda, terlepas dari managedHandlerprasyarat " ".

Untuk mengaktifkan semua modul terkelola untuk menjalankan semua permintaan tanpa mengonfigurasi setiap entri modul untuk menghapus managedHandlerprasyarat " ", gunakan runAllManagedModulesForAllRequestsproperti di <modules>bagian:

<modules runAllManagedModulesForAllRequests="true" />    

Ketika Anda menggunakan properti ini, managedHandlerprakondisi " " tidak berpengaruh dan semua modul terkelola berjalan untuk semua permintaan.

Disalin dari Ikhtisar Modul IIS: Prasyarat

Kapil Khandelwal
sumber
apakah baik untuk menjalankan semua model untuk semua permintaan atau saya akan lebih spesifik di sana. Apakah ini mempengaruhi kecepatan aplikasi?
ेखर
2
Ya akan ada masalah kinerja. Anda harus menggunakan prasyarat sebagai gantinya.
Kapil Khandelwal
3
lalu bagaimana saya harus memutuskan modul mana yang harus saya gunakan dan yang tidak.
ेखर
6
Sebuah pertanyaan lanjutan. Saya melihat itu mungkin untuk mengaktifkan modul terpisah juga, sebagai pengganti semua. Lihat pertanyaan saya ( stackoverflow.com/questions/20998816/… ), solusinya ada untuk menambahkan <modules runAllManagedModulesForAllRequests="true">. Tapi saya melihat sekarang mungkin membuat overhead. Jadi, apakah ada modul khusus yang bertanggung jawab yang saya bisa aktifkan untuk mendapatkan titik "." di MVC WebAPI Url, sebagai pengganti hanya mengaktifkan semuanya dengan <modules runAllManagedModulesForAllRequests="true">? Apakah itu misalnya modul "UrlAuthorization"?
Yves Schelpe
menambahkan bagian tag modul berfungsi untuk saya. Saya menggunakan MVC 5, .net framework 4.5.0, IIS 7 dan windows server 2008
gavin
-9

tambahkan kode di bawah ini di web.config

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer> 
hossein.sharifipour
sumber
4
mengapa saya ingin menambahkan?
ेखर