2010-12-23 84 views
1

哪个是处理ASP.NET MVC中的系统错误的最佳方法?我观看了DimeCast.net上的视频,其中该人使用global.ascx文件编写了一个方法Application_Error来处理错误。但目前,我正在处理web.config文件中的错误。正确的方式来处理ASP.NET MVC系统错误

有人能指出我如何正确处理错误的正确方向吗?这可能是:

  1. 语法错误
  2. 例外
  3. 404和其他网页/文件中未发现的错误

该应用程序是相当大的。

回答

1

很可能你需要结合使用方法。某些错误可以直接在您的模型中处理,其他的错误可以直接在您的控制器中处理,其他一些错误可能需要一直处理至应用程序级别(通过web.config或global.ascx)。

我更喜欢来处理global.ascx中的错误,而不是通过web.config中的重定向,因为在global.ascx中我有更多关于导致错误的请求的信息,就好像我通过web.config设置重定向一些那样信息在我的错误页面收到请求时会丢失。

几个星期前,我刚刚注意到404错误最好不要通过web.config来处理,因为(按设计)会导致HTTP重定向代码302而不是真正的HTTP 404代码,指示客户端该资源执行不存在。我在我的博客上有一篇文章,我详细讲述了这个问题http://hectorcorrea.com/Blog/Returning-HTTP-404-in-ASP.NET-MVC

使用ELMAH,因为Brook建议也是一个非常好的主意。

7

看看elmah未处理异常的记录,实际上是对nuget demo video

我使用ELMAH组合未处理异常一个简单的例子,和n日志记录的人,我可以处理,但还是想记录。到目前为止,这个组合已经非常成功。

+0

nuget演示视频链接已死,你可以更新你的链接 – 2015-09-23 17:18:08