MVC的HandleError过滤器没有捕捉异常(MVC HandleError filter di

2019-06-27 13:00发布

我在我使用“已经一个MVC 3 web应用程序的HandleError异常处理”操作过滤器。 我这个动作滤波器实现如下:

[HandleError]
public class BaseController : Controller {...}

这是从我的所有控制器都派生的基类。 在我的web.config我已经 并且有一个Error.cshtml在我的共享文件夹(.cshtml因为我用剃刀)。 一切都已经工作的很好,我得到了一个精美异常处理(我的功能格式化)

最近,不知何故,我得到了和“ 未处理的异常(YSOD)”,并因“的customErrors”我这没有对实际的异常任何信息默认ASP.Net的错误消息。 这是发生在一个AJAX回传。 不过,我无法重现它。

是否有可能为任何形式的错误逃离这个动作过滤器?

Answer 1:

是否有可能为任何形式的错误逃离这个动作过滤器?

HandleError过滤器不赶在应用程序触发的所有异常。 它可以捕捉在里面行动,行动过滤器发射..简单的MVC上下文中的例外。 此外,它不会捕获HTTP具有比其他500状态码仅依靠例外HandleError在MVC应用程序过滤器是一个坏主意。

你应该还是靠Application_Error事件做一些记录和customErrors部分为未通过捕获的异常显示自定义错误页HandleError

我写了一个博客帖子关于这个问题,可以帮助你。



文章来源: MVC HandleError filter didn't catch an exception