在asp.net mvc中记录错误,OnException方法不够用?

时间:2010-05-12 09:41:34

标签: c# asp.net-mvc logging

我在控制器方法中记录错误:

 protected override void OnException(ExceptionContext filterContext)

但是如果我在我的视图页面中输入一个类型,或者输入一个不存在的路径,它似乎不记录那个erorr?

2 个答案:

答案 0 :(得分:1)

使用Elmah记录。无需代码,只需配置。 Elmah会自动在内存,xml或数据库中记录错误,并提供一个非常好的用户界面来查看错误。

请参阅Scott Hanselman's explanation和官方文档Using Elmah with ASP.NET MVC

答案 1 :(得分:1)

多数民众赞成因为它是一个管道并且您想要在不同的范围内登录,要记录此错误,请将以下内容添加到您的global.asax:

public override void Init()
{
    base.Error+=new EventHandler(MvcApplication_Error);
    base.Init();
}

管道基本上是这样的:

  1. 提出请求
  2. 点击IIS / ASP.net
  3. 然后是路由引擎
  4. 然后是控制器
  5. 然后是观点
  6. 所以你需要在路由发生之前让你的错误处理程序到位。