<मॉड्यूल runAllManagedModulesForAllRequests = "true" /> अर्थ


133

मैं जानना चाहता था कि इसका अर्थ क्या है

<modules runAllManagedModulesForAllRequests="true" />

मैं IIS 7.5 का उपयोग कर रहा हूं और मेरे पास एक साधारण वेब एप्लिकेशन है। क्या मुझे इसे अपने web.config फ़ाइल में लिखने की आवश्यकता है। मैंने jquery ajax कॉल के लिए कुछ http हैंडलर भी लिखे हैं। मैं फॉर्म प्रमाणीकरण और asp.net 4.0 का उपयोग कर रहा हूं।

मैं कैसे निर्धारित कर सकता हूं कि मुझे कौन सा मॉड्यूल चलाना है और कौन सा नहीं है?

जवाबों:


122

मॉड्यूल पूर्व शर्त:

IIS कोर इंजन किसी विशेष मॉड्यूल को सक्षम करने के लिए निर्धारित करने के लिए पूर्व शर्त का उपयोग करता है। उदाहरण के लिए, प्रदर्शन कारण यह निर्धारित कर सकते हैं कि आप केवल प्रबंधित मॉड्यूल को निष्पादित करना चाहते हैं जो एक प्रबंधित हैंडलर पर भी जाते हैं। निम्न उदाहरण ( precondition="managedHandler") में पूर्व शर्त केवल उन अनुरोधों के प्रमाणीकरण प्रपत्रों को सक्षम करती है जो प्रबंधित हैंडलर द्वारा नियंत्रित किए जाते हैं, जैसे कि .aspx या .asmx फ़ाइलों के लिए अनुरोध:

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

यदि आप विशेषता को हटाते हैं precondition="managedHandler", तो प्रपत्र प्रमाणीकरण ऐसे कंटेंट पर भी लागू होता है, जो प्रबंधित। हैंडल जैसे .html, .jpg, .doc, लेकिन क्लासिक ASP (.asp) या PHP (.php) एक्सटेंशन के लिए भी नहीं होता है। सभी सामग्री के लिए चलाने के लिए ASP.NET मॉड्यूल को सक्षम करने के उदाहरण के लिए " IIS एकीकृत पाइपलाइन का लाभ कैसे उठाएं" देखें ।

आप अपने एप्लिकेशन में सभी अनुरोधों को चलाने के लिए सभी प्रबंधित (ASP.NET) मॉड्यूल को सक्षम करने के लिए एक शॉर्टकट का उपयोग कर सकते हैं, भले ही " managedHandler" पूर्व शर्त हो।

" managedHandler" पूर्व शर्त को हटाने के लिए प्रत्येक मॉड्यूल प्रविष्टि को कॉन्फ़िगर किए बिना सभी अनुरोधों को चलाने के लिए सभी प्रबंधित मॉड्यूल को सक्षम करने के लिए , अनुभाग runAllManagedModulesForAllRequestsमें संपत्ति का उपयोग करें <modules>:

<modules runAllManagedModulesForAllRequests="true" />    

जब आप इस संपत्ति का उपयोग करते हैं, तो " managedHandler" पूर्व शर्त का कोई प्रभाव नहीं होता है और सभी प्रबंधित मॉड्यूल सभी अनुरोधों के लिए चलते हैं।

IIS मॉड्यूल अवलोकन से कॉपी किया गया : पूर्व शर्त


क्या यह सभी मॉडलों को सभी अनुरोधों के लिए चलाने के लिए अच्छा है या मैं वहां पर अधिक विशिष्ट होगा। क्या इससे एप्लिकेशन की गति प्रभावित होती है?
शेखर

2
हाँ प्रदर्शन का मुद्दा होगा। आपको इसके बजाय पूर्व शर्त का उपयोग करना चाहिए।
कपिल खंडेलवाल

3
फिर मुझे कैसे तय करना चाहिए कि मुझे किस मॉड्यूल का उपयोग करना है और कौन सा नहीं।
शेखर

6
एक अनुवर्ती प्रश्न। मुझे लगता है कि सभी के अलावा, अलग मॉड्यूल को भी सक्षम करना संभव है। मेरा प्रश्न ( stackoverflow.com/questions/20998816/… ) देखें , वहाँ समाधान जोड़ना था <modules runAllManagedModulesForAllRequests="true">। लेकिन मुझे लगता है कि अब यह ओवरहेड बना सकता है। तो, क्या एक विशिष्ट मॉड्यूल जिम्मेदार है जिसे मैं डॉट प्राप्त करने में सक्षम कर सकता हूं "।" MVC WebAPI यूआरएल में, केवल उन सभी को सक्षम करने के बजाय <modules runAllManagedModulesForAllRequests="true">? यह उदाहरण के लिए "UrlAuthorization" मॉड्यूल है?
यवेस शेल्पे

मॉड्यूल टैग अनुभाग जोड़ना मेरे लिए काम करता है। मैं MVC 5, .net फ्रेमवर्क 4.5.0, IIS 7 और विंडोज़ सर्वर 2008
gavin

-9

web.config में नीचे कोड जोड़ें

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

4
मैं क्यों जोड़ना चाहूंगा?
शेखर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.