2008-11-05 17 views
16

में एएसपी.NET aspxerrorpath मेरे पास एक साइट है जहां मैं कस्टम त्रुटि पृष्ठ निर्दिष्ट करने के लिए web.config में CustomErrors का उपयोग करता हूं, और यह ठीक काम कर रहा है। आईआईएस कॉन्फ़िगरेशन में कस्टम 404 पेज भी निर्दिष्ट है (क्योंकि यदि ऐसा नहीं है, तो मुझे अपना कस्टम 404 पृष्ठ नहीं मिलता है)।यूआरएल

लेकिन मेरे पास कुछ तर्क है जो किसी उपयोगकर्ता को 404 प्राप्त करता है जो उनके अनुरोधित यूआरएल को देखता है और उचित होने पर नेविगेशन सुझाव देता है। यह तर्क aspxerrorpath मान पर निर्भर करता है। मेरे विकास पीसी पर, एएसपीएक्सपीआरएपी को यूआरएल में सही ढंग से जोड़ा गया है, जैसे: http://localhost:3092/FileNotFound.aspx?aspxerrorpath=/badpage.aspx, लेकिन मेरी टेस्ट साइट पर, यूआरएल में कोई एस्पेक्स आतंक नहीं है, इसलिए मेरे सभी कस्टम तर्क को छोड़ दिया गया है और मेरे सुझाव नहीं हैं काम। मुझे यकीन नहीं है कि यह एक आईआईएस कॉन्फ़िगरेशन समस्या है या कुछ और है। वेब सर्वर आईआईएस 7 के साथ विंडोज सर्वर 2008 है।

कोई विचार?

बहुत धन्यवाद।

+0

सर्वर पर वर्णित HTTPModules का उपयोग कर कस्टम 404 त्रुटि पृष्ठों को प्रदर्शित करने के लिए IIS7 कार्यक्षमता का उपयोग कर सकते हैं, क्या यह फ़ाइलNotFound.aspx पर रीडायरेक्ट हो जाता है या त्रुटि होने पर यूआरएल वही रहता है? क्या web.config में defaultRedirect के लिए कोई मान है? यदि आप उस तत्व में मान हटाते हैं, तो क्या व्यवहार बदलता है? –

+0

धन्यवाद जॉन। अधिक जानकारी: सर्वर पर, यूआरएल वही रहता है (यह FileNotFound.aspx पर नहीं जाता है)। web.config में कोई डिफ़ॉल्ट रेडियोधर्मी मान नहीं है। – theog

उत्तर

18

त्रुटि को .NET द्वारा पकड़ा गया था (और web.config में निर्दिष्ट त्रुटि पृष्ठ का उपयोग किया जाता है) aspxerrorpath पैरामीटर पारित किया जाता है। ऐसा होता है यदि आप विकास वेब सर्वर का उपयोग कर रहे हैं, या यदि आईआईएस कॉन्फ़िगर किया गया है कि यह जांचने के लिए कि फ़ाइल मौजूद है।

आईआईएस की जाँच करता है कि फ़ाइल मौजूद है, तो कस्टम आईआईएस में विन्यस्त त्रुटि प्रयोग किया जाता है, और अनुरोध किया गया URL

http://example.com/FileNotFound.aspx?404;http://example.com/badpage.aspx

6

की तरह कुछ के रूप में क्वेरी स्ट्रिंग में शामिल है आप नीचे दिए गए जोड़ना पड़े हैं web.config को

<customErrors mode="On"> 
    <error statusCode="404" redirect="~/error404.aspx" /> 
</customErrors> 

अधिक जानकारी की जांच के लिए: http://geekswithblogs.net/shahed/archive/2007/10/23/116278.aspx

अद्यतन: हम http://professionalaspnet.com/archive/2008/02/13/Enforcing-a-Custom-404-Page-in-ASP.NET.aspx

+0

धन्यवाद रमेश। मेरे पास web.config में यह सेट है। – theog

+0

@theog: कृपया मुझे बताएं कि परीक्षण मशीन में आप किस अनजान पृष्ठ को एक्सेस करने का प्रयास कर रहे हैं। क्या यह एस्पनेट कार्यकर्ता प्रक्रिया से जुड़ा हुआ है? साथ ही, http://professionalaspnet.com/archive/2008/02/13/Enforcing-a-ustom-404-Page-in-ASP.NET.aspx में वर्णित 404 HttpModule पर एक नज़र डालें – Ramesh