首页 > 解决方案 > 为 .Net WebAPI 项目添加 Microsoft.ApplicationInsights NuGet 对通过 Azure 门户激活 AI 有何影响?

问题描述

基本描述/配置:

我们有一个 .Net Framework 4.6.1(基于 ServiceStack)WebAPI 作为 Azure WebApp 在云中托管。我们 API 的每个发布版本都有自己的 Application Insights 遥测端点,但我们从未在 Visual Studio 中为我们的项目激活 Application Insights。相反,在将新的可发布版本从暂存槽交换到生产槽后,我们通过 Azure 门户激活 Application Insights,然后我们自动接收开箱即用的所有请求遥测数据。在我们的 WebApp 的配置部分,我可以看到添加了一些 AI 特定的键,最重要的是“APPINSIGHTS_INSTRUMENTATIONKEY”。

这曾经工作得很好。现在我必须实现一个功能,以便能够将一些自定义信息从我们的代码发送到应用程序洞察力。为此,我将Microsoft.ApplicationInsights NuGet 包(2.13.1) 添加到我们的项目中。在我们的第一个场景中,我通过以下方式发送自定义异常:

_telemetryClient.TrackException(…) 

为了测试新功能,我在云中创建了一个 Development Application Insights 资源,并将相应的检测密钥添加到我们的 app.config。这按预期工作,我可以看到我在云中的 AI 实例中发送的异常。

现在的问题:

当我将具有新功能的应用程序发布到云中的暂存槽,然后通过门户激活应用程序洞察力时,我不再收到任何标准的请求遥测数据,只有我的自定义异常。

1.) 通过门户激活 AI 时如何收集请求数据?我找不到任何可以添加到我们的应用程序中的 dll,所以我想托管我们的 Web 应用程序的 IIS 服务器收集和传输数据?

2.) 服务器是否检测到我们的代码中有 Microsoft.ApplicationInsights.dll 并因此停止收集请求数据,因为它希望我们自己在代码中处理这个问题?

我不想简单地在 Visual Studio 中为我们的项目激活全栈 Application Insights 功能的主要原因是,它安装了许多触发 DLL-Hell 的依赖项,因为我们需要这些 dll 的一些旧版本来处理其他依赖项在我们的应用程序中(例如 System.Net.Http)

标签: azureportalwebapitelemetry

解决方案


推荐阅读