2009-09-30 18 views
5

अद्यतन:IIS7 और Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule दर्ज की समस्याओं

विंडसर 2.5 में विधानसभा नाम Castle.Windsor नहीं Castle.MicroKernel


मैं एक ASP.NET MVC तैनात करने के लिए कोशिश कर रहा हूँ है आईआईएस 7 में ऐप और मुझे यह त्रुटि मिल रही है:

Looks like you forgot to register the http module Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule Add '' to the section on your web.config

मेरे httpModules में शामिल हैं:

<httpModules> 
    <add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.MicroKernel"/> 
</httpModules> 

system.webServer संचालकों अनुभाग

<handlers> 
    <remove name="PerRequestLifestyle"/> 
    <add name="PerRequestLifestyle" preCondition="managedHandler" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Microkernel" verb="*" path="*.castle" /> 
</handlers> 

मैं verb="*" path="*.castle" हिस्सा जोड़ा के रूप में मैं त्रुटियों हो रही थी, जब वे लापता थे शामिल हैं। सुनिश्चित नहीं है कि उनके मूल्य सही हैं या नहीं।

कोई भी जानता है कि समस्या क्या है?

+1

PerWebRequestLifestyleModule एक मॉड्यूल है, न कोई हैंडलर है:

यह जीवन शैली का उपयोग करने के कोड है। इसे हैंडलर सेक्शन से हटा दें। –

+0

मॉड्यूल घोषणा में संस्करण, संस्कृति और PublicKeyToken सहित प्रयास करें। –

+0

धन्यवाद, मैंने मॉड्यूल घोषणा को हटा दिया। संस्करण, संस्कृति और PublicKeyToken आवश्यक नहीं थे। मुझे एक हैंडलर के रूप में। इसे काम करने के लिए निर्देशिका 'सी: \ TempImageFiles' भी बनाना था। –

उत्तर

6

आप विन्यास/system.webServer/मॉड्यूल विन्यास/system.web/httpModules के बजाय में HTTP मॉड्यूल पंजीकरण करके समस्या का समाधान कर सकते हैं।

1

मुझे कुछ समय लिया इस के लिए एक समाधान खोजने के लिए, लेकिन सभी मैं करना पड़ा अद्यतन dll web.config में referneced किया जा रहा था ...

Castle.Core और विंडसर 2.5.1 ... का उपयोग करना

4

मेरे समस्या यह है कि मैं Application_Start में कंटेनर bootstraping किया गया था, मॉड्यूल ASP.NET में उस बिंदु पर प्रारंभ इसलिए जब आप रजिस्टर करने के लिए कोशिश/का उपयोग PerWebRequest जीवन शैली यह है कि अपवाद फेंकता है, क्योंकि यह पता लगाता है कि मॉड्यूल प्रारंभ नहीं किया गया था नहीं कर रहे हैं था ।

Castle Contrib से this library का उपयोग करके मैं HybridPerWebRequestTransient लाइफस्टाइल प्रदान करता हूं जो इस समय प्रारंभ नहीं होता है, क्षणिक लाइफस्टाइल का उपयोग करता है।

आपको बस लाइब्रेरी डाउनलोड करना है (जैसे ज़िप ठीक है) समाधान खोलें और संकलित करें, जेनरेट डीएलएल को पकड़ें और इसे अपने प्रोजेक्ट में संदर्भित करें।

यदि आप 3.0 से Castle.Windsor संस्करण का उपयोग कर रहे हैं तो आपको इसके वर्तमान संदर्भ को हटाना होगा और आप जिस संस्करण का उपयोग कर रहे हैं उसका संदर्भ जोड़ना होगा (मैं 3.1 का उपयोग कर रहा था और इसमें कोई समस्या नहीं थी)। .LifeStyle.HybridPerWebRequestTransient()