asp.net-mvc – MVC HandleError过滤器没有捕获异常

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – MVC HandleError过滤器没有捕获异常前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个MVC 3网络应用程序,我正在使用“ HandleError”动作过滤器进行异常处理.我的这个动作过滤器实现如下:
[HandleError]
public class BaseController : Controller {...}

这是我的所有控制器派生的基类.在我的web.config中我和我的共享文件夹中有一个Error.cshtml(.cshtml因为我使用Razor).一切都工作正常,我得到一个很好的异常处理(由我的功能格式化)

最近,不知怎的,我得到了“未处理的异常(YSOD)”,由于“customErrors”,我得到了默认的ASP.Net错误消息,该消息没有任何关于实际异常的信息.这发生在一个AJAX帖子中.但是,我无法重现它.

是否有任何类型的错误可以逃避此动作过滤器?

解决方法

Is it possible for any sort of errors to escape this action filter?

HandleError过滤器不会捕获应用程序中触发的所有异常.它可以捕获在动作内部触发的异常,动作过滤器……只需在MVC上下文中.此外,它不会捕获状态代码不是500的HTTP异常.仅依赖于MVC应用程序中的HandleError过滤器是一个坏主意.

您仍然应该依赖Application_Error事件来执行一些日志记录和customErrors部分,以显示HandleError未捕获的异常的自定义错误页面.

我写了一篇关于这个主题博客post可能会对你有帮助.

猜你在找的asp.Net相关文章