IIS web.config से कस्टम HTTP मॉड्यूल लोड नहीं करता है


18

मेरे पास ASP.NET MVC3 वेबसाइट के लिए एक कस्टम HTTP मॉड्यूल है जिसे मैं web.config से लोड कर रहा हूं:

<system.web>
    <httpModules>
      <add name="MyModule" type="MySolution.Web.MyHttpModule, MySolution.Web" />
    </httpModules>
</system.web>

मॉड्यूल को सही तरीके से लोड किया जाता है जब मैं वीएस वेब सर्वर के भीतर से साइट चलाता हूं (मेरे इनिट विधि में ब्रेक प्वाइंट हिट होता है) लेकिन जब मैं इसे IIS में होस्ट करता हूं तो इसे नजरअंदाज कर दिया जाता है (ब्रेकपॉइंट छूट जाता है और मॉड्यूल की कार्यक्षमता अनुपस्थित है साइट से)। मैंने इसे एक ही परिणाम के साथ दो अलग-अलग IIS बक्से पर आज़माया है।

मैं क्या गलत कर रहा हूं? क्या ऐसी सेटिंग है जिसे मुझे किसी साइट के web.config से मॉड्यूल लोड करने के लिए IIS को सक्षम करने के लिए फ़्लिक करना है?

जवाबों:


25

मुझे यह पूछने के कुछ ही समय बाद पता चला - IIS7 web.config के लिए एक अलग स्कीमा का उपयोग करता है। मॉड्यूल लोड करने का सही स्थान अब है:

<system.webServer>
  <modules>
    <add name="MyModule" type="MySolution.Web.MyHttpModule, MySolution.Web" />
  </modules>
</system.webServer>

3
इसी मुद्दे में भाग रहे हैं और यह पोस्ट मुझे इसे ठीक करने में मदद करती है। मैंने पाया कि स्थानीय dev सर्वर और उत्पादन सर्वर दोनों पर मेरे कस्टम मॉड्यूल का काम करने के लिए system.web / httpModules और system.webServer / मॉड्यूल दोनों को रखना आवश्यक है।
घोड़े रण

वाह! धन्यवाद। मैं वास्तव में इस एक पर दीवार के खिलाफ अपना सिर पीट रहा था।
एलेक्स सी

3
शायद अंतर IIS6 बनाम IIS7 नहीं है, लेकिन क्लासिक बनाम एकीकृत मोड है।
जन जाहरादीन

1

मुझे एक ऐसी ही समस्या है। माई सॉल्यूशन में पहले मॉड्यूल को हटाना और फिर इसे सिस्टम में जोड़ना -webServer namespace शामिल करना।

<system.webServer>
   <modules>
     <remove name="MyModule"/>
     <add name="MyModule" type="MySolution.Web.MyHttpModule, MySolution.Web" />
   </modules>
</system.webServer>

ऐसा इसलिए हो सकता है क्योंकि हम दो अलग-अलग IIS सर्वर पर तैनात हैं। एक सर्वर 2003 पर (iis 6) और एक सर्वर 2008 (iis7 +) पर। इसलिए मॉड्यूल को जोड़ने के लिए इसे नेमस्पेस में लोड करने से रोक दिया। मैं यहाँ गलत हो सकता है ...


1

7 साल बाद: यह IIS संस्करण के लिए विशिष्ट नहीं है, यह अनुप्रयोग पूल मोड के लिए विशिष्ट है: क्लासिक बनाम एकीकृत।

  <system.webServer><!--for integrated mode-->
    <modules>
      <add name="modulename" type="blabla.modulenamehere" />
    </modules>
  </system.webServer>

  <system.web><!--for classic mode-->
     <httpModules>
      <add name="modulename" type="blabla.modulenamehere" />
    </httpModules>
  </system.web>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.