首页 > 解决方案 > Application Insights Visual Studio 集成不适用于控制台应用程序 (WebJob)

问题描述

我有一个控制台应用程序,我们在 Azure 中部署为 WebJob。Application Insights 正在运行,因为遥测数据已正确发送到 Azure。但 Visual Studio (2019) 中的“Application Insights Search”窗口并未在本地获取遥测数据。我需要配置什么,因此应用程序洞察窗口将显示控制台应用程序的遥测数据?

在解决方案中,我们将 MVC 网站和 WebJob 放在同一个解决方案中。遥测在本地适用于 MVC 网站项目,但不适用于 webjob 项目。

我已将 Application Insights 与以下代码集成:

builder.ConfigureLogging((context, loggingBuilder) =>
{
  loggingBuilder.AddApplicationInsightsWebJobs(o =>
  {
    o.InstrumentationKey = instrumentationKey;
    o.EnableLiveMetrics = true;
    o.LiveMetricsInitializationDelay = TimeSpan.FromMinutes(1);
    o.SamplingExcludedTypes = "Exception";
  });
});

检测密钥来自 appsettings.json:

  "Company.Logging": {
    "InstrumentationKey": "1242189c-1192-41d9-b877-b26890bd0eef",
    "LoggingServiceUrl": "https://loggingapidev.company.com/api/logs/batch"
  }

我们对网站使用相同的配置,这很有效。

我确实尝试在 appsettings.json 中添加“APPINSIGHTS_INSTRUMENTATIONKEY”键并作为环境变量。那没有任何影响。

有谁知道我能做些什么来完成这项工作?这将使开发人员更直观地使用应用程序洞察力。现在我必须将他们引导到可以找到本地遥测数据的门户。

标签: azureazure-application-insightsazure-webjobsazure-webjobssdkappinsights

解决方案


我用控制台项目(webjob v3)对其进行了测试,它工作正常。我可以看到日志显示在 Visual Studio Application Insights 搜索窗口中。

如果您仍然出现此问题,请尝试通过手动将 ApplicationInsights.config文件添加到您的 webjob 项目中。

工作流程:

  • 右键单击项目:添加 -> 新项目...
  • 选择:应用程序配置文件,例如“JavaScript JSON 配置文件”。
  • 名称:ApplicationInsights.config
  • 删除此文件的内容 -> 然后单击保存。然后右键这个文件->选择属性->将“复制到输出目录”设置为“如果较新则复制”

推荐阅读