मैं अपने एमवीसी प्रोजेक्ट के साथ Application_Error का उपयोग करना चाहता हूं, लेकिन मैं इसे काम नहीं कर सकता। मैं अपने Global.asax फ़ाइल में निम्न जोड़ें: (। सत्र परीक्षण के लिए ही है इम वाला त्रुटि लॉग इन करने के लिए एक डेटाबेस का उपयोग करें, अगर मैं यह काम करने के लिए मिलता है।)मैं एएसपी.नेट एमवीसी में Application_Error का उपयोग कैसे करूं?
protected void Application_Error(object sender, EventArgs e)
{
Exception objErr = Server.GetLastError().GetBaseException();
Session["Test"] = "Message:" + objErr.Message.ToString();
}
तो मैं एक फेंक करने की कोशिश मेरे होम कंट्रोलर और मेरे होम/इंडेक्स व्यू से अपवाद, लेकिन यह केवल डीबग ट्रिगर करता है।
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
throw (new Exception());
return View();
}
मेरी Webconfig फ़ाइल में मैं एक defaulterror पेज सेट, लेकिन यह दृश्य पर रीडायरेक्ट नहीं करता:
<customErrors defaultRedirect="Home/Error">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
मुझे आपके समाधान में कोई समस्या है। CustomErrors नियंत्रक को ट्रिगर किए बिना सीधे होम/त्रुटियों के दृश्य पर रीडायरेक्ट करता है। मुझे नहीं पता था कि यह क्या संभव था, लेकिन जब मैं त्रुटि क्रिया विधि पर डीबग पॉइंट डालता हूं तो डीबग कभी कॉल नहीं होता है। त्रुटि दृश्य केवल स्क्रीन पर प्रदर्शित होता है, लेकिन यूआरएल अभी भी यूआरएल जैसा ही है जो त्रुटि को ट्रिगर करता है। उदाहरण के लिए यदि मैं/होम/जॉब पर एक त्रुटि ट्रिगर करता हूं तो मुझे त्रुटि दृश्य मिलेगा लेकिन यूआरएल अभी भी/होम/जॉब – Poku
हे @ ब्लौडार्ट: एक नए उपयोगकर्ता का संदेश सौजन्य जो टिप्पणी नहीं कर सकता: यह जवाब फ्लैट-आउट है गलत। समस्या यह है कि नियंत्रक वर्ग से Server.GetLastError() को कॉल करना काम नहीं करता है यदि आप web.config का उपयोग डिफ़ॉल्ट नियंत्रक कार्रवाई पर रीडायरेक्ट करने के लिए करते हैं। एएसपी त्रुटि नियंत्रक को एक नया HTTP अनुरोध शुरू करता है, जो अपवाद जानकारी खोने, सर्वर चर को साफ़ करता है। –
खराब उत्तर ..... यहां एक अच्छा लेख है कि आपको http://www.prideparrot.com/blog/archive/2012/5/exception_handling_in_asp_net_mvc –