2012-12-05 14 views
6

मैं हाल ही में आईआईएस 7 में कुछ एएसपी.नेट एमवीसी 3 और 4 साइटों को दबा रहा हूं और इसमें बड़ी समस्याएं हैं। आम तौर पर फिक्स वेब पर निम्नलिखित शामिल करना है। कॉनफिगप्रबंधित मॉड्यूल क्या हैं?

<system.webServer> 
    <httpErrors errorMode="Detailed" /> 
    <asp scriptErrorSentToBrowser="true"/> 
    <modules runAllManagedModulesForAllRequests="true" /> 
</system.webServer> 

मेरा प्रश्न है, क्यों? प्रबंधित मॉड्यूल क्या है और वे एएसपी.नेट एमवीसी/सी # के साथ कैसे काम करते हैं?

संपादित करें: आगे परीक्षण के बाद मुझे पता चला है कि यह समस्या सर्वर 2008 आर 2 और आईआईएस 7.5 पर मौजूद नहीं है लेकिन सवाल अभी भी खड़ा है, एक प्रबंधित मॉड्यूल क्या है और मुझे कैसे पता चलेगा कि मैं अपने में एक का उपयोग कर रहा हूं कोड?

+0

आपको नहीं पता होगा। यह पहले से ही उन सभी का उपयोग करने के लिए क्यों सेट नहीं किया गया था? मुझे लगता है कि यह एक डिफ़ॉल्ट है। आपके द्वारा _except_ पोस्ट किए गए सभी परिवर्तनों को करने का प्रयास करें और देखें कि यह काम करता है या नहीं, फिर _only_ को बदलने का प्रयास करें और यह देखें कि यह काम करता है या नहीं। –

+0

मेरे पास है, यह एकमात्र परिवर्तन है जो इसे काम करता है। और यह कम से कम 3 सर्वरों पर डिफ़ॉल्ट नहीं है जिसे मैंने साइट पर धक्का दिया है। यह निराशाजनक है क्योंकि कई डेवलपर्स इस बात पर विचार नहीं करते कि वे कोड लिखते समय किस तरह से बातचीत कर रहे हैं और गरीब sys व्यवस्थापक मेरे जैसे टुकड़े लेने और चीजों को दृश्य स्टूडियो के बाहर कहीं भी काम करने की कोशिश कर रहे हैं। आपको याद है कि हमारे पास शायद इन साइटों में से एक सौ साइटें हैं और जब तक हमारे डेवलपर्स एमवीसी 4 के बारे में सोचते हैं, तब तक इस समस्या को कभी नहीं मिला। – Preston

+0

आईआईएस आमतौर पर कुछ मॉड्यूल के लिए यूआरएल एक्सटेंशन के आधार पर अनुरोधों को रूट करता है। उदाहरण के लिए, .aspx को IIRC, Aspnet_isapi.dll पर भेज दिया जाता है। लेकिन एमवीसी यूआरएल में एक्सटेंशन नहीं हैं। इसलिए, आपको यह सुनिश्चित करना होगा कि प्रबंधित मॉड्यूल को किसी भी यूआरएल पर कार्य करने का मौका मिले, न केवल अपेक्षित एक्सटेंशन वाले। 'runAllManagedModulesForAllRequests' एमवीसी रूटिंग मॉड्यूल को आपके एप्लिकेशन में परिभाषित किसी भी मार्ग से मेल खाने पर विस्तारित URL पर एक क्रैक प्राप्त करने देता है। याद रखें, आईआईएस 7 एक बड़ा बदलाव था, इसलिए आपको इसे मैन्युअल रूप से कॉन्फ़िगर करना पड़ा। 7.5 में इस आम समस्या के लिए एक फिक्स शामिल था। – Will

उत्तर

5

एक मॉड्यूल एक एएसपी.Net घटक है जो अनुरोध पाइपलाइन के किसी बिंदु पर प्लग करता है; कई "आधिकारिक" मॉड्यूल हैं, हालांकि you can also code your own

IIS listing of modules

आप देख सकते हैं, मॉड्यूल उत्पादन कैशिंग, प्राधिकरण और प्रमाणीकरण के विभिन्न प्रकार, और भी बहुत कुछ सहित कार्यों की एक किस्म प्रदर्शन करते हैं।


It's best not to run all managed modules; इसके बजाए, यदि आप कर सकते हैं, तो पता लगाएं कि दिए गए एप्लिकेशन या प्लेटफॉर्म की कौन सी मॉड्यूल की आवश्यकता है। एएसपी.नेट एमवीसी के लिए, यह रूटिंग मॉड्यूल की संभावना है: System.Web.Routing.UrlRoutingModule

संबंधित मुद्दे