<modüller runAllManagedModulesForAllRequests = "true" /> Anlamı


133

Anlamını bilmek istedim

<modules runAllManagedModulesForAllRequests="true" />

IIS 7.5 kullanıyorum ve basit bir web uygulamam var. Bunu web.config dosyama yazmam gerekiyor mu? Ayrıca jquery ajax çağrısı için birkaç http işleyici yazdım. Form kimlik doğrulaması ve asp.net 4.0 kullanıyorum.

Hangi modülü çalıştırmam gerektiğini ve hangisinin olmayacağını nasıl belirleyebilirim?

Yanıtlar:


122

Modül Ön Koşulları:

IIS çekirdek motoru, belirli bir modülün ne zaman etkinleştirileceğini belirlemek için ön koşulları kullanır. Örneğin performans nedenleri, yönetilen bir işleyiciye de giden istekler için yalnızca yönetilen modülleri yürütmek istediğinizi belirleyebilir. Aşağıdaki örnekteki ( precondition="managedHandler") ön koşul, yalnızca form kimlik doğrulama modülünü, .aspx veya .asmx dosyalarına yönelik istekler gibi, yönetilen bir işleyici tarafından da işlenen istekler için etkinleştirir:

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

Özniteliği kaldırırsanız precondition="managedHandler", Form Kimlik Doğrulaması .html, .jpg, .doc gibi yönetilen işleyiciler tarafından sunulmayan içeriğin yanı sıra klasik ASP (.asp) veya PHP (.php) uzantıları için de geçerlidir. ASP.NET modüllerinin tüm içerik için çalışmasını sağlamaya ilişkin bir örnek için " IIS Tümleşik Ardışık Düzeninden Nasıl Yararlanılır " konusuna bakın .

Ayrıca, tüm yönetilen (ASP.NET) modüllerinin uygulamanızdaki tüm istekler için çalışmasını etkinleştirmek için bir kısayol da kullanabilirsiniz.managedHandler ön koşul " .

Yönetilen tüm modüllerin, her modül girişini " managedHandler" ön koşulunu kaldıracak şekilde yapılandırmadan tüm istekler için çalışmasını sağlamak runAllManagedModulesForAllRequestsüzere, <modules>bölümdeki özelliği kullanın :

<modules runAllManagedModulesForAllRequests="true" />    

Bu özelliği kullandığınızda, " managedHandler" ön koşulun bir etkisi olmaz ve tüm yönetilen modüller tüm istekler için çalışır.

IIS Modüllerine Genel Bakış'tan Kopyalanmıştır : Ön Koşullar


tüm talepler için tüm modelleri çalıştırmak iyi mi yoksa orada daha spesifik olacağım. Bu uygulamanın hızını etkiler mi?
शेखर

2
Evet, performans sorunu olacak. Bunun yerine ön koşul kullanmalısınız.
Kapil Khandelwal

3
o zaman hangi modülü kullanıp hangisini kullanmayacağıma nasıl karar vermeliyim?
शेखर

6
Bir takip sorusu. Hepsinin yerine ayrı modülleri etkinleştirmenin de mümkün olduğunu görüyorum. Eklenecek çözüm olan soruma bakın ( stackoverflow.com/questions/20998816/… ) <modules runAllManagedModulesForAllRequests="true">. Ama şimdi bunun ek yük yaratabileceğini görüyorum. Öyleyse, noktayı "" almak için etkinleştirebileceğim sorumlu belirli bir modül var mı? MVC WebAPI Url'sinde, sadece hepsini etkinleştirmek yerine <modules runAllManagedModulesForAllRequests="true">? Örneğin "UrlAuthorization" modülü mü?
Yves Schelpe

modül etiketi bölümü eklemek benim için çalışıyor. MVC 5, .net framework 4.5.0, IIS 7 ve windows server 2008 kullanıyorum
gavin

-9

web.config dosyasında aşağıdaki kodu ekleyin

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer> 

4
neden eklemek isterim?
शेखर
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.