以编程方式设置Application Insights检测密钥会引发错误

时间:2015-07-17 08:11:45

标签: c# azure azure-web-sites azure-application-insights

要在多个环境中支持应用洞察,我们将按照this post中的建议以编程方式设置检测密钥

我们已将ApplicationInsights.config中的<InstrumentationKey>留空,而是在 web.config 中添加了应用程序设置:

<add key="ApplicationInsightsInstrumentationKey" value="1234-5678-9xxx" />

Application_Start 中,我们执行以下操作来设置检测密钥:

var instrumentationKey = ConfigurationManager.AppSettings["ApplicationInsightsInstrumentationKey"];

if (string.IsNullOrWhiteSpace(instrumentationKey))
{
    throw new ConfigurationErrorsException("Missing app setting 'ApplicationInsightsInstrumentationKey' used for Application Insights");
}

TelemetryConfiguration.Active.InstrumentationKey = instrumentationKey;

new TelemetryClient().TrackEvent("Application started");

但是,这会产生一个例外,说明&#34; 必须先初始化TelemetryChannel才能发送遥测&#34;。

Google搜索此异常消息不会产生任何结果,但我想在跟踪事件之前还需要一些其他内容吗?

1 个答案:

答案 0 :(得分:11)

从ApplicationInsights.config中删除<InstrumentationKey />元素似乎可以解决问题。

我做了完全相同的事情,在Web应用程序的Application_Start()中设置iKey,然后在控制器应用程序中新建一个TelemetryClient之前。我在我的ApplicationInsights.config中有任何元素,甚至不是空白元素。我在该配置文件中保留一条评论,说明该密钥是以编程方式设置的。