उदाहरण के लिए, हम ग्लोबल.एक्सएक्स त्रुटि हैंडलर से, एक त्रुटि रिपोर्टिंग ईमेल में उपयोग करने के लिए वाईएसओडी आउटपुट को कैप्चर करना चाहते हैं। क्या अंतर्निहित ysod जनरेटर का लाभ उठाने का कोई तरीका है?क्या एएसपी.नेट पीले स्क्रीन ऑफ डेथ (वाईएसओडी) मांग पर कब्जा कर लिया जा सकता है?
उत्तर
हां एक तरीका है कि आप यह कर सकते हैं।
वैश्विक में एप्लिकेशन_इरर ईवेंट में।Asax फ़ाइल, सिस्टम के रूप में अंतिम अपवाद प्राप्त करें। HttpUnhandledException। आपका कोड इस तरह दिखेगा:
var lastException = Server.GetLastError() as HttpUnhandledException;
string Ysod = lastException.GetHtmlErrorMessage();
// your call to emailing routine follows
मैं अन्य लोगों की टिप्पणियों से सहमत हूं। आप इसे ELMAH के साथ भी कर सकते हैं।
आपको ELMAH की जांच करनी चाहिए जो आप स्वचालित रूप से पूछ रहे हैं।
मैं सामान्य रूप से कहूंगा, आप नहीं चाहते कि उपयोगकर्ता वाईएसओडी का अनुभव करे। यह कुछ ऐसा है कि मैंने पहले वेब एप्लिकेशन में डाल दिया त्रुटि को पकड़ने और उसके बाद उपयोगकर्ता के लिए एक और अधिक सुंदर त्रुटि पृष्ठ के लिए अनुमति देने के लिए
protected void Application_Error(object sender, EventArgs e)
{
MailMessage msg = new MailMessage();
HttpContext ctx = HttpContext.Current;
msg.To.Add(new MailAddress("[email protected]"));
msg.From = new MailAddress("[email protected]");
msg.Subject = "My app had an issue...";
msg.Priority = MailPriority.High;
StringBuilder sb = new StringBuilder();
sb.Append(ctx.Request.Url.ToString() + System.Environment.NewLine);
sb.Append("Source:" + System.Environment.NewLine + ctx.Server.GetLastError().Source.ToString());
sb.Append("Message:" + System.Environment.NewLine + ctx.Server.GetLastError().Message.ToString());
sb.Append("Stack Trace:" + System.Environment.NewLine + ctx.Server.GetLastError().StackTrace.ToString());
msg.Body = sb.ToString();
//CONFIGURE SMTP OBJECT
SmtpClient smtp = new SmtpClient("myhost");
//SEND EMAIL
smtp.Send(msg);
//REDIRECT USER TO ERROR PAGE
Server.Transfer("~/ErrorPage.aspx");
}
आप ELMAH के बारे में सुना है है ...? यह आप सभी सुविधाओं आप वास्तव में चाहते हैं दे सकता है ...
यहाँ एक ब्लॉग पोस्ट को इसके बारे में एक सा बताते है: http://www.hanselman.com/blog/ELMAHErrorLoggingModulesAndHandlersForASPNETAndMVCToo.aspx
मैं ELMAH (Error Logging Modules and Handlers for ASP.NET) में दिखेगा:
ELMAH (त्रुटि लॉगिंग मॉड्यूल और हैंडलर) एक अनुप्रयोग-व्यापी त्रुटि लॉगिंग सुविधा है जो पूरी तरह से प्लग करने योग्य है। यह को एक चल रहे एएसपी.NET वेब अनुप्रयोग, या यहां तक कि सभी एएसपी.NET वेब अनुप्रयोगों पर मशीन पर पुन: संकलन या पुन: तैनाती के बिना किसी भी आवश्यकता के गतिशील रूप से जोड़ा जा सकता है।
एक बार ELMAH एक चल वेब अनुप्रयोग में गिरा दिया गया है और कॉन्फ़िगर किया गया उचित रूप से, आप अपने कोड की एक लाइन बदले बिना निम्नलिखित सुविधाएं मिलती है:
- लगभग सभी बिना क्रिया अपवादों में से लॉगिंग।
- रिकॉर्डेड अपवादों के पूरे लॉग को दूरस्थ रूप से देखने के लिए एक वेब पेज।
- किसी भी एक पृष्ठ को अपवाद लॉग इन किसी भी व्यक्ति के पूर्ण विवरण को दूरस्थ रूप से देखने के लिए।
- कई मामलों में, आप मौत की मूल पीले स्क्रीन की समीक्षा कर सकते हैं कि ASP.NET किसी दिए गए अपवाद के लिए जेनरेट किया गया है, यहां तक कि customErrors मोड बंद कर दिया गया है।
- यह होने पर प्रत्येक त्रुटि की एक ई-मेल अधिसूचना।
- लॉग से आखिरी 15 त्रुटियों की एक आरएसएस फ़ीड।
Global.asax फ़ाइल में Application_Error ईवेंट को ट्रिगर करने के लिए जब भी एक बिना क्रिया का अपवाद आवेदन में होता है। आप सर्वर.GetLastError() विधि का उपयोग कर हुए अंतिम अपवाद को पकड़ सकते हैं।
इसी तरह, आप web.config फ़ाइल में customErrors अनुभाग के तहत web.config में निर्दिष्ट करके अपना स्वयं का कस्टम त्रुटि पृष्ठ बना सकते हैं। एक डिफ़ॉल्ट फ़ाइल निर्दिष्ट करके, जब कोई अपवाद रूट किया जाता है तो आप कोई कस्टम कोडिंग कर सकते हैं।
- 1. कस्टम ब्लू स्क्रीन ऑफ डेथ
- 2. केकपीएचपी व्हाइट स्क्रीन ऑफ डेथ
- 3. एएसपी.नेट "पीला स्क्रीन ऑफ डेथ" कैसा प्रदर्शन करता है?
- 4. रूबी पर कब्जा कर लिया regex पैटर्न
- 5. पूर्ण स्क्रीन पर कब्जा (Javacv?)
- 6. Regex - सहेजा जा रहा है कब्जा कर लिया दोहराया जाने वाला समूह
- 7. html5 कब्जा स्क्रीन
- 8. वीबीए वेब ब्राउजर पूर्ण स्क्रीन पर कब्जा
- 9. tcpdump जैसे टूल्स में, जब नेटवर्क पैकेट पर कब्जा कर लिया जाता है?
- 10. क्या मौत की पीले रंग की स्क्रीन पर कहीं भी कोई कार्यान्वयन है?
- 11. स्क्रीन ऑन/ऑफ डिटेक्शन
- 12. ओपनजीएल: फास्ट ऑफ-स्क्रीन प्रतिपादन
- 13. मांग पर
- 14. प्रोग्राम ऑब्जेक्ट्स द्वारा जावा ऑब्जेक्ट पर कब्जा कर लिया गया स्मृति की गणना करें जिसमें ऑब्जेक्ट्स
- 15. मौत की एएसपी.नेट पीले स्क्रीन - इसे स्टैक ट्रेस कहां से मिलता है?
- 16. क्या एचटीटीपीएस कनेक्शन को मैन-इन-द-बीच हमले से अपहरण कर लिया जा सकता है?
- 17. जेपीईजी छवि को संपीड़ित नहीं कर सकता है और इसे स्क्रीन पर दिखाया जा सकता है
- 18. लाइफटाइम ऑफ एएसपी.नेट स्टेटिक वैरिएबल
- 19. क्यों मेरी रिश्तेदार लेआउट पूरी स्क्रीन की चौड़ाई पर कब्जा
- 20. जावास्क्रिप्ट Regex - यहां तक कि पहले से ही कब्जा कर लिया से मेल खाता है
- 21. ओपनलेयर अक्षांश वेबकिट मोबाइल ब्राउज़र में गलत तरीके से कब्जा कर लिया गया
- 22. होने वाली मौतों के सभी पीले स्क्रीन, तब भी जब अपने एक संकलन समस्या
- 23. कस्टम एल्मा वाईएसओडी डेटा
- 24. आईओएस: स्लाइडिंग UIView ऑन/ऑफ स्क्रीन
- 25. ऑफ स्क्रीन से एंड्रॉइड एनिमेट व्यू
- 26. ऑफ-स्क्रीन होने पर XNA घटक ड्राइंग को कैसे रोकें?
- 27. नई लाइन पर एक इनलाइन तत्व कैसे दिखाना है, या ब्लॉक तत्व पूरी लाइन पर कब्जा नहीं कर सकता है?
- 28. मांग पर नीचे बार छुपाएं
- 29. क्या एक UIActivityIndicator को MPMoviePlayerController पर पूर्ण स्क्रीन मोड में प्रदर्शित किया जा सकता है?
- 30. कैसे सिर्फ कैमरे से कब्जा कर लिया छवि पथ पाने के लिए
3 साल और कौन जानता है कि मैं ईएलएमएएच का उपयोग क्यों नहीं करना चाहता था, लेकिन यही वह जवाब है जिसे मैं निश्चित रूप से ढूंढ रहा था। मुझे लगता है कि एक व्यस्त परियोजना में एक और निर्भरता नहीं लेना चाहता था जो पहले से ही तीसरे पक्ष के मॉड्यूल के साथ बह रहा है। – nicknystrom
वास्तव में जो भी मैं खोज रहा था, मैं अपनी परियोजना में एल्मा का उपयोग करता हूं, लेकिन जब उपयोगकर्ता एक प्रशासक होता है, तो मैं विस्तृत वाईएसओडी को केवल दोस्ताना त्रुटि संदेश नहीं दिखाना चाहता हूं। –
मैंने अन्य परियोजनाओं पर एल्मा का उपयोग किया, लेकिन इस मामले में विशेष रूप से, मैं त्रुटि लॉगिंग को नियंत्रित करना चाहता हूं, क्योंकि sh! टी बहुत गंभीर हो गया है, यहां तक कि एल्मा के लिए भी! यह मूल प्रश्न का सही उत्तर देता है और आज भी खड़ा है * श्वास * – ppumkin