c# - Url routing problem with IIS7 -


यूआरएल रूटिंग और IIS7 03-24-2011 04:24 PM

हाय,

मेरे पास एक asp.net 4.0 और IIS7 में यूआरएल रूटिंग के बारे में कोई क्वेरी है I नीचे मैंने बताया है कि मेरी वेबसाइट संरचना क्या है और इसे IIS7 में कैसे कॉन्फ़िगर किया गया है।

डायरेक्ट्री स्ट्रक्चर:

1.मेय वेबसाईट> Index.aspx

2.MyWebsite & gt; AboutUs & gt; Index.aspx

3.मेरे वेब साइट & gt; संपर्क यूज & gt; ContactUs.aspx

II7 कॉन्फ़िगरेशन:

मैंने अपने आवेदन के डिफ़ॉल्ट दस्तावेज़ को Index.aspx के रूप में कॉन्फ़िगर किया है अब, जब मैं यूआरएल के नीचे का उपयोग करता हूं, IIS7 कुछ राउटिंग स्वचालित रूप से करता है (ध्यान दें कि अब तक मैं global.asax में किसी भी रूट को जोड़ दिया है)

1.लोकलहोस्ट / माइवसाइट को स्थानीयहोस्ट / माइवसाइट / इंडेक्स.स्पैक के लिए अग्रेषित किया जाएगा।

2.localhost / MyWebsite / aboutus को स्थानीयहोस्ट / के बारे में यूज़ / इंडेक्स.एस्पक्स पर अग्रेषित किया जाएगा (यह रीडायरेक्शन पैरेंट स्तरीय डिफॉल्ट डॉक्यूमेंट के रूप में किया जाता है जो लगभग यूट्यूब फ़ोल्डर से प्राप्त होता है) ओके !!

3.लोकलहोस्ट / माइवसाइट / संपर्क यूज == एचटीटीपी त्रुटि 403.14 निषिद्ध (यह त्रुटि आईआईएस 7 बीकॉज़ द्वारा फेंक जाती है, यह कनैकस फ़ोल्डर में इंडेक्स.स्पेक्स को नहीं खोजती है) ठीक !!

ठीक है, स्थानीय होस्ट / माइवसाइट / संपर्क यूज के लिए स्थानीयहोस्ट / माइवसाइट / संपर्क यूज / इंडेक्स। एस्पएक के लिए रूट किया जा रहा है, मैं ग्लोबल.एएसएक्स में रजिस्टर रोट्स () विधि में कोड नीचे जोड़कर उम्मीद कर रहा हूं कि यह मेरी आवश्यकता को पूरा करेगा। <पूर्व> मार्गों। MapPageRoute ('ConcreteUs', 'ContactUs', '~ / ContactUs / ContactUs.aspx');

इसलिए अब जब मैं स्थानीयहोस्ट / माइ्व्ज़साइट / संपर्क यूज पर पहुंचता हूं तो मुझे अभी भी निषिद्ध त्रुटि मिलती है I तो क्या आईआईएस 7 डिफ़ॉल्ट पेज सेटिंग रूट पर है जिससे मेरे रूट काम करने की इजाजत नहीं है?

यदि मेरे पास प्रत्येक फ़ोल्डर में Index.aspx पृष्ठ है तो यह /contactus/Index.aspx पर Iredirection काम करता है ... लेकिन क्या होगा मुझे हर पेज में Index.aspx (मेरा डिफ़ॉल्ट दस्तावेज़) नहीं है?

धन्यवाद & amp; तरह का संबंध है, एम।

इसका कारण यह काम नहीं कर रहा है क्योंकि आईआईएस हैंडलर को पता चल रहा है कि फ़ोल्डर "ContactUs" मौजूद है और एएसपी.NET हैंडलर को सौंपने के बजाय अनुरोध का जवाब दे रहा है। (उदाहरण के लिए यदि आपके वास्तविक भौतिक फ़ोल्डर को 'संपर्क यूज' के बजाय 'संपर्क यूस 1' कहा जाता है और '~ / contactus1 / contactus.aspx' को इंगित करने के लिए अपना मार्ग अपडेट किया जाता है तो आप अपना रूटिंग काम देखेंगे)।

आपके मामले में सबसे सरल समाधान 'ContactUs.aspx' को 'ContactUs' सबफ़ोल्डर के लिए डिफ़ॉल्ट दस्तावेज़ के रूप में सेट किया जा सकता है आप इसे नीचे दिए गए XML अनुभाग के साथ ContactUs फ़ोल्डर में web.config जोड़कर ऐसा कर सकते हैं।

  & lt; कॉन्फ़िगरेशन & gt; & LT; system.webServer & gt; & LT; defaultDocument & gt; & LT; फ़ाइलों & gt; & Lt; add value = "ContactUs.aspx" / & gt; & Lt; / फ़ाइलें & gt; & Lt; / defaultDocument & gt; & LT; /system.webServer> & Lt; / विन्यास & gt;    

Comments