断开连接时过滤掉错误的Asp.Net异常的好方法(OperationCanceledException,TaskCanceledException)

时间:2018-07-26 13:52:27

标签: c# asp.net asp.net-web-api asp.net-web-api2

如果浏览器断开了连接(例如,选项卡已关闭),Asp.Net会产生强制转换异常的错误行为。在这种情况下,它会抛出两个异常,这些异常并不是我们真正需要担心或记录的(或者至少我不想在日志中看到这种“噪音”)。

关于问题here的讨论更多。这是我的解决方案,用于过滤似乎有效的这些异常(在Application_Error中。)

private static bool IsAspNetBugException(Exception exception)
{
    return
        (exception is TaskCanceledException || exception is OperationCanceledException) 
        &&
        exception.StackTrace.Contains("System.Web.HttpApplication.ExecuteStep");
}

我想知道这是否“足够好”并且不会隐藏任何真正的异常。不是世界上最健壮的代码,但是没有发现比读取堆栈跟踪更好的方法来弄清这是否是Asp.Net本身的异常。

0 个答案:

没有答案