【问题标题】:Unable to get Application Insights to show debugging telemetry无法让 Application Insights 显示调试遥测数据
【发布时间】:2020-02-06 23:29:36
【问题描述】:

我完全是 Application Insights 的菜鸟,遗憾的是,经过一整天的尝试,我根本无法让它工作。我尝试使用以下代码:

this.telemetryClient = new TelemetryClient(TelemetryConfiguration.CreateDefault());
this.telemetryClient.TrackTrace($"Test", Microsoft.ApplicationInsights.DataContracts.SeverityLevel.Warning);

但是当我进入应用程序洞察窗口并显示来自当前调试会话的所有遥测数据时,没有任何记录。一位用户说缺少一个 ApplicationInsights.config 文件(并且一个空的文件可以很好地进行调试),我创建了一个但它没有任何改变。

然后我尝试了我能找到的最简单的控制台应用程序 - https://docs.microsoft.com/en-us/azure/azure-monitor/app/console。我没有检测密钥,从我今天阅读的数百个论坛中,如果您将其留空,它仍应出现在调试遥测中。唉,Application Insights 中仍然没有任何内容。

我怎样才能让它工作?当查询“调试遥测”时,我只想在 Visual Studio Application Insights 窗口中看到一条 Trace 消息。

【问题讨论】:

  • 什么类型的项目? Dotnet 核心网络应用?
  • 一个简单的 C# 控制台应用程序,正如我在第二段中所写的。在转向更复杂的事情之前,我想从那里开始。

标签: c# logging dependency-injection azure-application-insights


【解决方案1】:

我曾经研究过这些东西以及它通常的工作方式,扩展试图弄清楚它是否应该监视调试输出,如果它不能识别项目类型,我们什么都不做(避免在我们不需要时在调试器中进行工作)。在这种情况下,控制台应用程序不是“已知”受支持的项目类型。

IIRC,要获得调试输出,我相信你需要做 2 件事,其中你已经做了 1:

1) 在该项目的根目录下添加一个ApplicationInsights.config 文件

2) 向 csproj 添加应用洞察资源 ID:

 <ApplicationInsightsResourceId>/subscriptions/abc</ApplicationInsightsResourceId>

我不认为资源 id 甚至需要是有效的,但如果它做得更好,因为其他东西可以亮起来,比如异常 codelens,到门户网站的各种链接/等等.

你可能只需要做 #2 吗?

认为如果您执行上述操作并重新启动 vs/重新加载解决方案,您应该会看到调试器集成在调试器启动时尝试工作。 (它曾经!)

【讨论】:

  • Afaik 配置文件不再用于 .net 核心项目。
  • 在 NETCore 应用程序中,添加“ApplicationInsights.config”解决了它,添加 ApplicationInsightsResourceId 什么也没做。无论如何,您先生是人中的上帝,谢谢。
  • 是的,项目本身不使用配置文件,但这会“欺骗”工具使其认为它是受支持的项目
  • #2 是为我做的。可能更多地强调重新启动视觉工作室。在做出这个改变并试图让它在不重新启动的情况下工作之后,这让我发疯了几个小时。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
相关资源
最近更新 更多