【问题标题】:Correct way to handle ASP.NET MVC system errors处理 ASP.NET MVC 系统错误的正确方法
【发布时间】:2010-12-23 02:03:01
【问题描述】:

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

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

  1. 语法错误
  2. 例外情况
  3. 404 和其他页面/文件未找到错误

应用程序相当大。

【问题讨论】:

    标签: asp.net-mvc error-handling asp.net-mvc-3


    【解决方案1】:

    查看elmah 以记录未处理的异常,nuget demo video 上实际上有一个简单示例

    我将 elmah 组合用于未处理的异常,并使用 nLog 来记录我可以处理但仍想记录的异常。到目前为止,这种组合效果很好。

    【讨论】:

    • nuget 演示视频链接已失效,能否请您更新链接
    【解决方案2】:

    您很可能需要多种方法。有些错误可以直接在您的模型中处理,有些则在您的控制器中处理,还有一些可能需要一直处理到应用程序级别(通过 web.config 或通过 global.ascx。)

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

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

    按照 Brook 的建议使用 ELMAH 也是一个非常好的主意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-31
      • 1970-01-01
      • 2012-08-25
      • 2012-10-06
      • 2019-05-17
      • 2010-09-16
      • 2018-02-27
      • 2011-04-12
      相关资源
      最近更新 更多