未处理的异常无法登录Appinsights

时间:2019-07-09 05:35:53

标签: asp.net azure azure-application-insights

我在asp.net aspx中有一个网站。我有一个HTTP处理程序。 如果存在任何未处理的异常,HTTP处理程序中的application_error函数将捕获该异常。然后,它还会转到global.ascx中的Application_Error。

我已经设置了应用程序Insights.config,以将所有异常记录到Azure App见解中。 我想要的是,某些特定的异常(例如maxURLsize)不应记录在我的Azure应用见解中。

我尝试了以下操作,但不起作用。 1. HttpContext.Current.Server.ClearError();在Application_Error函数中 2. System.Diagnostics.Debug.Assert(false);在Http处理程序的application_Error事件中。

1 个答案:

答案 0 :(得分:1)

您可以使用ITelemetryProcessor

如果知道异常名称,例如maxURLsize,则在自定义遥测处理器类中,可以使用下面的代码(也可以根据需要组合其他属性):

    public class MyErrorFilter: ITelemetryProcessor
    {
        private ITelemetryProcessor Next { get; set; }
        public MyErrorFilter(ITelemetryProcessor next)
        {
            this.Next = next;
        }
        public void Process(ITelemetry item)
        {           

            var exceptions = item as ExceptionTelemetry;

            if (exceptions != null && (exceptions.Exception.GetType().Name.ToLower() == "maxURLsize".ToLower()))
            {                
                return;
            }

            this.Next.Process(item);
        }
    }

然后按照上述文档进行注册。