2011-10-04 13 views
5

हैलो अगर मैं 404 प्रतिक्रिया देता हूं तो मैं रीडायरेक्ट करने की कोशिश कर रहा हूं लेकिन यह उम्मीद के अनुसार काम नहीं कर रहा है, क्या आप विशेषज्ञों को इस मुद्दे को देख सकते हैं? यह अभी भी मेरे Global.asax में जेनेरिक 404404 कस्टम रीडायरेक्ट

को जाता है

protected void Application_BeginRequest(Object sender, EventArgs e) 
{ 
     if (Response.Status == "404 Not Found") 
     { 
      string notFound = "~/custom_notfound.aspx"; 
      Response.Redirect(notFound); 
     } 

} 

अद्यतन

(Response.Status == "404 Not Found") 
(Response.Status == "404") 
(Response.StatusCode == 404) 
+0

आप 'Response.Redirect (notFound) डाल करने के लिए मतलब है का उपयोग कर सकते हैं;'? – Icarus

+0

पेज नॉटफाउंड क्या है ?? –

+0

आह क्षमा करें टाइपिंग करते समय टाइप करें लेकिन अभी भी समस्या है। धन्यवाद – user710502

उत्तर

8

तुम भी web.config उपयोग कर सकते हैं अनुभाग customErrors अब तक की कोशिश की - as shown here

उदाहरण system.web अनुभाग में,

<customErrors mode="On" defaultRedirect="/custom_error.aspx"> 
    <error statusCode="404" redirect="/custom_notfound.aspx" /> 
</customErrors> 
2

आप इस पुनर्निर्देशन करने के लिए अपने web.config को जोड़ सकते हैं, तो आप इस संभाल करने Application_BeginRequest उपयोग करने की आवश्यकता नहीं है।

यह ServerFault question देखें।

यदि आप web.config का उपयोग नहीं कर सकते हैं तो मैं आपके स्टार्टअप पेज को उस पर सेट करूँगा जो मौजूद नहीं है, अपने BeginRequest में ब्रेकपॉइंट डालें, ऐप डीबग करें और यह देखने के लिए अनुरोध देखें कि इसे कैसे निर्धारित किया जाए एक 404 है। इष्टतम समाधान निर्धारित करना बहुत आसान होगा।

इसमें कुछ और देख रहे हैं, HttpStatusCode है जिसका उपयोग HttpWebResponse क्लास में किया जाता है। तो डिफ़ॉल्ट प्रतिक्रिया प्राप्त करने के लिए एप्लिकेशन के एक अलग ओवरराइड का उपयोग करना समझ में आता है, और फिर Enum के खिलाफ इसकी स्थिति की जांच करें।

+0

किसी भी मामले में, किसी कारण से वे इसे एएसएक्स में करना चाहते हैं, जो वहां ऐसा करने का तरीका होगा? – user710502

3

मुझे नहीं लगता कि BeginRequest को 404 त्रुटियों के बारे में पता हो सकता है। इसके बजाय Application_Error को लागू करने का प्रयास करें। यह देखने के लिए जांचें कि क्या Server.GetLastError() एक HttpException है, और यदि ऐसा है, तो स्थिति की जांच करें।

0

तुम भी web.config

<system.webServer> 
    <httpErrors errorMode="Custom" defaultResponseMode="File" > 
    <remove statusCode="404" /> 
    <remove statusCode="500" /> 
    <error statusCode="404" path="404.html" /> 
    <error statusCode="500" path="500.html" /> 
    </httpErrors> 
</system.webServer> 
संबंधित मुद्दे