【发布时间】:2019-10-09 03:03:53
【问题描述】:
我在 Azure 函数中注册了一个自定义遥测处理器 - 但是,在启动期间,客户处理器永远不会被触发。我的代码如下所示:
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
// ...
builder.Services.AddHttpContextAccessor();
builder.Services.AddApplicationInsightsTelemetryProcessor<CustomTelemetryProcessor>();
// ...
}
}
public class CustomTelemetryProcessor : ITelemetryProcessor
{
private ITelemetryProcessor _next;
private IHttpContextAccessor _httpContextAccessor;
public CustomTelemetryProcessor(ITelemetryProcessor next, IHttpContextAccessor httpContextAccessor)
{
// never gets to here
_next = next;
_httpContextAccessor = httpContextAccessor;
}
public void Process(ITelemetry item)
{
// never gets here
if (item is OperationTelemetry operationTelemetry)
{
// ...
operationTelemetry.Properties.Add("MyCustomProperty", "MyCustomValue");
// ...
}
// Send the item to the next TelemetryProcessor
_next.Process(item);
}
}
这种方法在 Web API 中运行良好。有解决方法吗?还是我错过了什么?
【问题讨论】:
-
您好,您可以按照下面的答案解决您的问题吗?如果您仍有任何问题,请随时告诉我:)。
-
是的,我让它工作了,我喜欢你在 Configure 中所做的事情!非常感谢
标签: azure .net-core azure-functions azure-application-insights