2011-04-09 21 views
6

Webform1.aspx.cs में:एप्लिकेशन_इरर आग नहीं है?

protected void Page_Load(object sender, EventArgs e) 
{ 
    throw new Exception("test exception"); 
} 

Global.asax.cs में:

protected void Application_Error(object sender, EventArgs e) 
{ 
    // Code that runs when an unhandled error occurs 
    if (Server.GetLastError() is HttpUnhandledException) 
     Server.Transfer("ErrUnknown.aspx"); 
} 

लेकिन Application_Error ईवेंट हैंडलर कभी नहीं कहा जाता हो जाता है। इसके बजाय मुझे रनटाइम त्रुटि पृष्ठ मिलता है।

अपवाद के बाद एप्लिकेशन_इरर को कॉल करने के लिए मुझे क्या करना है?

+0

कस्टम वेब अनुभाग के लिए आपका web.config क्या कहता है? – Rich

+0

कुछ भी नहीं। क्या आप कस्टमइरर्स सेक्शन का जिक्र कर रहे हैं? – ChrisPeeters

+0

हां, यह संकलन भी जांचें डीबग = ट्रू [सेट] (http://msdn.microsoft.com/en-us/library/e8z01xdh%28v=vs.80%29.aspx) – Rich

उत्तर

5

यह ठीक दिखता है और Application_Error को कॉल किया जाना चाहिए।

क्या आपने Debugging अपना आवेदन चेक किया था?

असल में आप Server.ClearError() खो रहे हैं, इसलिए अपवाद को एएसपीनेट में पास किया जा रहा है लेकिन आपको इसे यहां दबा देना चाहिए क्योंकि आप इसे स्वयं से संभालना चाहते हैं।

protected void Application_Error(object sender, EventArgs e) 
{ 
    // Code that runs when an unhandled error occurs 
    if (Server.GetLastError() is HttpUnhandledException) 
    { 
     // suppressing the error so it should not pass to asp.net 
     Server.ClearError(); 
     Server.Transfer("ErrUnknown.aspx"); 
    } 
} 
+0

हैलो। अपवाद फेंकने वाले बयान पर पेज_लोड में डीबगर ब्रेक करता है और एप्लिकेशन_इरर जारी नहीं रहता है। कोई सुझाव? – ChrisPeeters

1

मुझे समस्या मिली।

Server.Transfer("ErrUnknown.aspx") 

कारण था।

सीधे ब्राउज़र में 'ErrUnknown.aspx' को देखने का प्रयास करते हुए मुझे एहसास हुआ कि मुझे उस पृष्ठ में एक त्रुटि हुई है। इसे सर्वर को ठीक करने के बाद। ट्रांसफर काम करता है

भ्रामक था हालांकि यह है कि एप्लिकेशन को डिबग करने के दौरान ईवेंट को निकाल दिया नहीं जाता है?

वैसे भी।

+0

सुनिश्चित नहीं है कि यह सभी के लिए काफी समाधान है –

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