gpt4 book ai didi

asp.net-mvc - 将 Elmah 与 WebApi 一起使用时会记录两次错误

转载 作者:行者123 更新时间:2023-12-04 09:43:58 26 4
gpt4 key购买 nike

我正在尝试使用 elmah 从我的 asp.net web api 项目中记录异常。我遇到了一个问题,每个错误都被记录了两次。

我正在使用 Elmah.Contrib.Web-Api,我的 Application 类如下:

public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
GlobalConfiguration.Configuration.Filters.Add(new ElmahHandleErrorApiAttribute());

RouteTable.Routes.MapHubs();
RouteConfig.RegisterRoutes(RouteTable.Routes);

#if DEBUG
EntityFrameworkProfiler.Initialize();
#endif

GlobalConfig.CustomizeConfig(GlobalConfiguration.Configuration);

}
}

如果我注释掉以下行,那么我根本不会收到任何消息:
GlobalConfiguration.Configuration.Filters.Add(new ElmahHandleErrorApiAttribute());

而且我可以确认我只抛出了一个错误,并且只调用了一次生成错误的调用,并且我没有使用 Elmah 属性手动修饰我的 Controller 或方法。

为了尝试解决这个问题,我删除了 Contrib 包并按照此处的说明添加 http://www.tugberkugurlu.com/archive/asp-net-web-api-and-elmah-integration

这并没有解决问题,它仍然记录了两次。它确实允许我在 Attribute 类中放置一个断点,并确认每个错误都被调用了两次。

我该如何解决这个问题?

最佳答案

您的 web.config 中有哪些与 ELMAH 相关的条目?

我在 MVC 应用程序中遇到了类似的问题 - 处理的异常被记录了两次。在应用程序中,我使用自定义异常过滤器通过错误信号将处理的异常记录到 ELMAH,而 HTTP 模块负责处理未处理的异常。

原来我需要设置:

<add key="elmah.mvc.disableHandleErrorFilter" value="true" />

在 web.config 中以禁用 ELMAH.MVC NuGet 包中的内置异常过滤器。

内置过滤器的源代码显示它记录处理的异常:
https://github.com/alexanderbeletsky/elmah-mvc/blob/master/src/Elmah.Mvc/HandleErrorAttribute.cs

关于asp.net-mvc - 将 Elmah 与 WebApi 一起使用时会记录两次错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15357497/

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