您应该在ASP.NET MVC中的global.asax中使用Application_Error方法吗?

时间:2009-07-28 14:41:27

标签: c# asp.net asp.net-mvc global-asax error-logging

我知道在ASP.NET中人们通常会在其global.asax文件中放置一个名为“Application_Error”的受保护方法,以便处理说logging of exceptions

我的问题是,这是ASP.NET唯一的东西,还是在ASP.NET MVC中同样有效?它是否是ASP.NET MVC的最佳实践?

3 个答案:

答案 0 :(得分:5)

您应该使用异常过滤器来处理控制器中的异常。您可以通过将[HandleError]属性添加到控制器操作来完成此操作。更多信息可在以下网址找到:MS MVP MVC Blog

答案 1 :(得分:2)

您可以使用Application_Error块,但better yet, use ELMAH。这是一个可爱的错误记录工具(我很惊讶它没有与ASP.Net/ASP.Net MVC捆绑在一起。)

如果您从未使用它,它会捕获死亡的黄色屏幕和一大堆环境变量,以便您可以查看已捕获的错误。

除此之外,我们所有的控制器都继承自一个控制器基类,该基类使用Wolfwyrd链接的[HandleError]属性进行修饰,以便我们充分利用这两个世界。

答案 2 :(得分:-2)

在ASP.Net中有效的任何东西都可以在ASP.Net MVC中运行,我的意思是什么。包括旧式ASPX页面,包括代码隐藏和Viewstate。