मेरे पास एक हाइब्रिड asp.net वेब फॉर्म / एमवीसी अनुप्रयोग है जिसे मैंने हाल ही में एमवीसी 2 के साथ .net में कनवर्ट किया है। मैंने तय किया है कि आईआईएस 7.5 (विंडोज 7 पर) और साइट के वेब फॉर्म का हिस्सा ठीक चल रहा है लेकिन एमवीसी भाग नहीं है। जब भी मैं कोशिश करूँगा और किसी ऐसे पेज को एक्सेस करूँगा जिसे रूटिंग इंजन के माध्यम से जाना होगा I
HTTP त्रुटि 404.0 - नहीं मिला - जो संसाधन आप ढूंढ रहे हैं वह निकाल दिया गया है, जिसका नाम बदल गया है, या अस्थायी रूप से अनुपलब्ध।
मॉड्यूल IIS वेब कोर
अधिसूचना MapRequestHandler
हैंडलर StaticFile - त्रुटि कोड 0x80070002
मैं VS2010 के माध्यम से इस वेब साइट को डिबग कर रहा हूँ (इसलिए मैंने इसे सेट किया है -कैसिनी के बजाय आईआईएस का उपयोग करने के लिए) और जब मैं Application_Start फ़ंक्शन में एक ब्रेक पॉइंट लगाया तो यह कभी नहीं मारा जाता है, इसलिए मार्ग कभी पंजीकृत न होते हैं जब मैंने एपीपीएक्स पृष्ठ कोड में से किसी एक में पेज_लोड फ़ंक्शन में एक ब्रेक प्वाइंट लगाया, तो पीछे हो गया। तो ऐसा लगता है कि समस्या यह है कि मार्ग पंजीकृत नहीं है।
मुझे क्या याद आ रहा है?
ASP.NET MVC के साथ अपने अनुभव से, मैंने देखा है कि आईआईएस को सही ढंग से कार्य करने के लिए Default.aspx
पेज की आवश्यकता है । मैं उस पृष्ठ का उपयोग कर रहा हूं जो ASP.NET MVC 1 टेम्पलेट में शामिल था I दुर्भाग्य से, एएसपी.नेट एमवीसी 2 में इस पेज को शामिल नहीं किया गया है (मेरे सबसे अच्छे ज्ञान के लिए), ताकि आपको अपनी परियोजना में निम्नलिखित को जोड़ना चाहिए:
Default.aspx:
& lt;% @ Page Language = "C #" AutoEventWireup = "true" CodeBehind = "Default.aspx.cs" इनहेरिट्स = "YourNamespace._Default"% & gt; & Lt;% - कृपया इस फ़ाइल को हटाएं नहीं। इसका उपयोग यह सुनिश्चित करने के लिए किया जाता है कि आईएस द्वारा एएसपी.नेट एमवीसी सक्रिय होता है जब कोई उपयोगकर्ता सर्वर पर "/" अनुरोध करता है -% & gt;
Default.aspx.cs:
सिस्टम। वेब का उपयोग कर; System.Web.Mvc का उपयोग कर; System.Web.UI का उपयोग कर; नामस्थान आपके नामस्थान {सार्वजनिक आंशिक वर्ग _Default: पृष्ठ {सार्वजनिक प्रेषक पेज_लोड (ऑब्जेक्ट प्रेषक, System.EventArgs ई) {// वर्तमान पथ बदलें ताकि रूटिंग हैंडलर सही ढंग से // व्याख्या कर सकता है, फिर मूल पथ को पुनर्स्थापित करें ताकि आउटपुट कैश मॉड्यूल // सही ढंग से प्रतिक्रिया की प्रक्रिया (यदि कैशिंग सक्षम है) स्ट्रिंग मूलपथ = अनुरोध। पाथ; HttpContext.Current.RewritePath (अनुरोध। अनुप्रयोगपाठ, गलत); IHttpHandler httpHandler = नया MvcHttpHandler (); httpHandler.ProcessRequest (HttpContext.Current); HttpContext.Current.RewritePath (मूलपथ, गलत); }}}
Comments
Post a Comment