asp.net - 未处理的异常未登录 appinsights
问题描述
我在 asp.net aspx 中有一个网站。我有一个 HTTP 处理程序。如果有任何未处理的异常,HTTP 处理程序中的 application_error 函数会捕获它。然后它也转到 global.ascx 中的 Application_Error。
我已设置 applicationInsights.config 以将所有异常记录到 Azure App 见解中。我想要的是,一些特定的异常,如 maxURLsize,不应该记录在我的 Azure 应用洞察中。
我尝试了下面的东西,但它不起作用。1. HttpContext.Current.Server.ClearError(); 在 Application_Error 函数 2. System.Diagnostics.Debug.Assert(false); 在 Http 处理程序中的 application_Error 事件中。
解决方案
您可以使用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);
}
}
然后按照上面提到的文档注册它。
推荐阅读
- git - git describe 命令中 ^ 的含义
- selenium - 单击后提交按钮不更改/导航页面
- android - 如何在 Android 中限制 ScrollView 的边界?
- ruby-on-rails - Rails:带有散列的枚举不返回散列键:值
- php - mysql。从具有共同列的许多表中检索数据
- html - 在 bootstrap modal 中添加两个 modal-content
- log4net - .Net Core 功能上的 Log4Net 翻转失败
- excel - 从一个工作表中创建与另一个工作表上的单元格匹配的所有值的列表
- apache-flink - Apache Flink:.countWindow() 是在发生许多事件后处理代码的正确方法吗?
- azure - 如何在逻辑应用程序中发送一封来自地址设置为不回复的电子邮件?