C# 压制;路径'/';未找到或未实现IController。”;具有应用程序细节的服务器端

C# 压制;路径'/';未找到或未实现IController。”;具有应用程序细节的服务器端,c#,azure-application-insights,C#,Azure Application Insights,我知道这一讨论(无例外的源端解析): 我也有同样的问题,我不想用机器人程序产生的流量污染我的异常日志(我们只有Web API控制器)。我可以使用遥测处理器忽略服务器请求(通常显示为“失败的请求”),只需返回404 但是,无法删除异常条目-是否有人知道一个设置/过滤器/您命名的设置,允许我决定服务器端(在发送它们之前)将哪些异常传递给Application Insights?您需要实现一个自定义ITelemetryProcessor,如下所述: 公共类控制器NotImplementedTelem

我知道这一讨论(无例外的源端解析):

我也有同样的问题,我不想用机器人程序产生的流量污染我的异常日志(我们只有Web API控制器)。我可以使用遥测处理器忽略服务器请求(通常显示为“失败的请求”),只需返回404


但是,无法删除异常条目-是否有人知道一个设置/过滤器/您命名的设置,允许我决定服务器端(在发送它们之前)将哪些异常传递给Application Insights?

您需要实现一个自定义
ITelemetryProcessor
,如下所述:

公共类控制器NotImplementedTelemetryProcessor:ITelemetryProcessor
{
私有ITelemetryProcessor Next{get;}
公共作废流程(ITelemetry项)
{
var exception=项目作为例外元素;
if(exception!=null&&exception.exception.GetType()==typeof(HttpException)&&exception.exception.Message.Contains(“未找到或未实现IController”))
返回;
下一步:过程(项目);
}
公共控制器未实现TelemetryProcessor(ITelemetryProcessor下一个)
{
下一个=下一个;
}
}
在Global.ascx中注册自定义处理器:

TelemetryConfiguration.Active.TelemetryProcessorChainBuilder
.Use(下一步=>new ControllerNotImplementedTelemetryProcessor(下一步))
.Build();
请注意,这显然是一个非常粗糙的过滤器,这取决于错误消息的语言为英语可能是可以接受的,但也可能导致误报