您应该在 ASP.NET MVC 的 global.asax 中使用 Application_Error 方法吗?
我知道在 ASP.NET 中,人们通常会在其 global.asax 文件中放置一个名为“Application_Error”的受保护方法,以便处理 记录异常。
我的问题是,这是 ASP.NET 特有的事情,还是它在 ASP.NET MVC 中同样有效? 它是否是 ASP.NET MVC 最佳实践?
I know that in ASP.NET people typically put a protected method called "Application_Error" in their global.asax file inorder to handle say, logging of exceptions.
My question is, is this an ASP.NET only thing, or does it work equally well in ASP.NET MVC? Is it an ASP.NET MVC best practice or not?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您应该使用异常过滤器来处理控制器中的异常。 您可以通过将 [HandleError] 属性添加到控制器操作来完成此操作。 更多信息可在以下位置找到:MS MVP MVC 博客
You should be using the Exception Filter to handle exceptions in your controllers. You do this by adding the [HandleError] attribute to the controller action. Further information can be found at: on the MS MVP MVC Blog
您可以使用 Application_Error 块,但更好的是,使用 ELMAH。 这是一个可爱的错误记录工具(我有点惊讶它没有与 ASP.Net/ASP.Net MVC 捆绑在一起)。
如果您从未使用过它,它会捕获死机的黄屏和一大堆环境变量,以便您可以查看捕获的错误。
除此之外,我们所有的控制器都继承自一个控制器基类,该基类用 Wolfwyrd 链接到的 [HandleError] 属性装饰,以便我们获得两全其美的效果。
You can use the Application_Error block but better yet, use ELMAH. It's a lovely error logging tool (and I'm kind of surprised that it hasn't been bundled in with ASP.Net/ASP.Net MVC).
If you've never used it, it captures the yellow screen of death and a whole mess of environmental variables so that you can review the errors that you've caught.
Along with this, all of our controllers inherit from a controller base class that's decorated with the [HandleError] attribute that Wolfwyrd linked to so that we get the best of both worlds.
任何能在 ASP.Net 中工作的东西都可以在 ASP.Net MVC 中工作,我的意思是任何东西。 包括带有代码隐藏和 Viewstate 的旧式 ASPX 页面。
Anything that works in ASP.Net works in ASP.Net MVC, and I do mean anything. Including your old-style ASPX pages complete with code-behind and Viewstate.