我在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事件中。
答案 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);
}
}
然后按照上述文档进行注册。