1

我使用异常过滤器在我的 ASP.NET Core 应用程序中记录异常,如下所示:

public void OnException(ExceptionContext context)
{
    var request = context.HttpContext.Request;
    var resource = $"{request?.Method}: {request?.Path}{request?.QueryString}";

    var logger = context.HttpContext.RequestServices.GetService<ILogger<ExceptionFilter>>();
    logger.LogError(0, context.Exception, $"Error in SB.API - {resource}");           
}

这很好用,但 Kestrel 也会记录这个事件,给我一个重复的条目。

当我像这样手动记录它时,如何防止此错误进一步传播?

我不想完全关闭它,因为那样我可能会错过管道其他部分发生的错误。

4

1 回答 1

1

设置context.ExceptionHandled = true;,然后 Kestrel 会知道你已经处理了它并且不会记录它。

于 2017-02-28T14:50:35.947 回答