gpt4 book ai didi

asp.net-mvc - MVC4 中的 ELMAH 和 API Controller 未记录错误

转载 作者:行者123 更新时间:2023-12-04 00:03:09 25 4
gpt4 key购买 nike

在 MVC4 中使用 API Controller ,当 Controller 操作引发异常时,ELMAH 不会记录错误。

我认为问题在于 MVC4 将 HTTP 状态代码设置为 500,并在 JSON 对象中返回异常详细信息,但它不会引发未处理的异常,因此 ELMAH 永远不会看到它。

如何让 ELMAH 捕获状态代码不是 200 的所有响应?

最佳答案

前面描述的 anwser 不起作用。我在我的测试服务器上尝试过并收到一个错误(“给定的过滤器实例必须实现以下一个或多个过滤器接口(interface):IAuthorizationFilter、IActionFilter、IResultFilter、IExceptionFilter。”)

然后我意识到发生了什么....您正在尝试将自定义过滤器添加到 MVC 全局过滤器 (filters.Add(new ElmahHandledErrorLoggerFilter());)

为了解决这个问题,我在 GlobalFilter 和 HttpFilter 中拆分了过滤器注册

过滤器配置文件

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}

public static void RegisterHttpFilters(HttpFilterCollection filters)
{
filters.Add(new ElmahHandledErrorLoggerFilter());
}

全局.asax
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
FilterConfig.RegisterHttpFilters(GlobalConfiguration.Configuration.Filters);

;-)

关于asp.net-mvc - MVC4 中的 ELMAH 和 API Controller 未记录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10059563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com