每当我的正常控制器操作方法引发异常时,elmah 都会正确地将浏览器重定向到自定义错误页面。
但是,我的母版页中有一个 Html.RenderAction 调用,可以调用我的 HomeController.TopLevelNav 方法。TopLevelNav 方法是一个子操作,如果它引发异常,elmah 不会将用户重定向到错误页面。相反,我看到了 ysod“运行时错误”页面。
每当我的正常控制器操作方法引发异常时,elmah 都会正确地将浏览器重定向到自定义错误页面。
但是,我的母版页中有一个 Html.RenderAction 调用,可以调用我的 HomeController.TopLevelNav 方法。TopLevelNav 方法是一个子操作,如果它引发异常,elmah 不会将用户重定向到错误页面。相反,我看到了 ysod“运行时错误”页面。
我将引用 ELMAH Google 群组中的 Scott Wilson:
--- 足球爸爸写道:
我的问题是完成我所描述的“最佳实践”意味着什么。我应该在 global.asax 中处理 Application_Error 并做那些事情吗?其他人在做不同的事情吗?
最佳实践是按原样使用 Elmah 并在 web.config 文件中配置自定义错误页面。Elmah 将捕获错误并记录它们,而不会对应用程序的其余部分产生任何干扰。如果您想要自定义错误页面,可以在标准 ASP.NET web.config CustomErrors 部分轻松设置。两者都不会影响对方的操作。问候,斯科特