我一直在关注将cloud_RoleName添加到我的Web应用程序(https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/azure-monitor/app/app-map.md#net)中的文章,我只是通过一个非常简单的ASP.net Web应用程序尝试了此操作。我创建了一个用于遥测的类库,并在我的Web应用程序中引用了它,并确保使用了Instrumentation Key。现在,当我以编程方式初始化自定义TELEMETRY类时,即(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.TelemetryInitializers.Add(new ExtendedIDTelemetryInitializer()))..它工作得很好,根本没有问题。遥测通过我的自定义CLOUD_ROLENAME发送到我的Azure App Insights资源,但是如果我尝试声明性地添加遥测,也就是将INITIALIZE代码添加到ApplicationInsights.config文件中,它确实起作用:(我的CUSTOM cloud_RoleName没有报告到Azure App见解,我需要走DECLARATIVE路线而不是编程方式,因为我需要将此代码发送给第三方产品,并且他们无法更改STARTUP事件以添加它。不知道为什么DECLRATIVE不起作用吗?我的ApplicationInsights.config文件如下所示。有帮助吗?<Add Type="KSTelemetry.Telemetry.MyTelemetryInitializer,KSTelemetry"/>
答案 0 :(得分:2)
如果您使用的是asp.net核心应用程序,则不支持通过ApplicationInsights.config进行声明式配置。添加遥测初始化程序必须通过将其添加到DI容器中来完成,如以下链接所示 https://docs.microsoft.com/en-us/azure/azure-monitor/app/asp-net-core#adding-telemetryinitializers