2011-10-12 4 views
9

जब मेरी कस्टम त्रुटियां अक्षम होती हैं, तो एल्मा उन सभी अपवादों को ले रही है जो उन्हें मेरे डेटाबेस में लॉग इन कर रही हैं और मुझे ईमेल कर रही हैं।कस्टम त्रुटियां सक्षम होने पर Elmah ट्रिगर नहीं कर रहा है

<customErrors mode="RemoteOnly" defaultRedirect="~/Home/Error"> 
</customErrors> 

Elmah कार्य कर बंद हो जाता है:

हालांकि, दूसरे मैं अपने web.config बदल जाते हैं। यह अब डेटाबेस या कुछ भी अपवाद लॉग नहीं करता है, मैं देखता हूं कि मेरी कस्टम त्रुटि कार्रवाई निष्पादित की जा रही है।

मेरे पास कस्टम त्रुटि संदेश कैसे हो सकते हैं और अभी भी elmah लॉग अपवाद हैं? मैं वर्तमान में एल्मा के अलावा कोई अन्य अपवाद नहीं कर रहा हूं।

उत्तर

18

इसे समझ लिया!

ऐसा होने का कारण यह था क्योंकि Global.asax में filters.Add(new HandleErrorAttribute()); था। मुझे नहीं पता कि यह क्यों है, लेकिन कस्टम त्रुटियों को सक्षम होने पर यह असफल हो रहा था। इस लाइन को हटाने से एल्मा ने कस्टम त्रुटियों के साथ ठीक से काम किया।

इसके अलावा, this answer द्वारा वर्णित अनुसार "हैंडल" त्रुटियों को लॉग करने के लिए elmah को भी बताते हैं।

हालांकि मैं किसी भी विकल्प के पूर्ण रूप से पूरी तरह से ramifications पता नहीं है।

+0

यदि आपके पास सभी त्रुटियों के लिए केवल एक "जेनेरिक" त्रुटि पृष्ठ है, तो आपको हैंडलरर एट्रिब्यूट जोड़ा नहीं है, और इसलिए आपके पास इसे हटाया जा सकता है। –

+2

मानक फ़िल्टर को हटाने से web.config कस्टम त्रुटि रीडायरेक्ट को रोकना प्रतीत होता है। एल्मा को "हैंडल" त्रुटियों को लॉग इन करने के लिए निश्चित रूप से बेहतर समाधान है। – Owen

+0

@owen आप हैंडल अपवादों को लॉग इन करने के लिए ELMAH कैसे बताते हैं? –