Microsoft.ApplicationInsights错误:InstrumentationKey不能为空

时间:2014-11-26 18:24:18

标签: c# asp.net azure azure-application-insights

我试图使用Microsoft.ApplicationInsights,我通过nuget安装了相同的内容。但是当我试图使用

_telemetryClient.TrackException(ex, new Dictionary<string, string>
                                    {
                                         {"Id", id.ToString()}
                                    }, null);

我收到一条错误说: InstrumentationKey不能为空。

我已经浏览了URL,但我无法在VS中看到配置文件的任何更新菜单(注意:我使用的是VS 2012 Pro)。

我也尝试使用检测密钥

更新配置文件
<ComponentID>{Instrumentation Key}</ComponentID>

但是,这也不起作用。

感谢。

5 个答案:

答案 0 :(得分:2)

您是手动下载nuget还是通过将AppInsights添加到项目中来获取UI? 当用户尝试手动添加单个块时,我们已经看到了这个问题。

最简单的恢复方法是通过右键单击项目并选择更新应用程序洞察来添加完整的AppInsights支持 - 它将要求您创建新的AI资源或指向现有的AI资源,它将为您创建检测密钥。

但您需要使用VS 2013才能与Application Insights进行VS集成。

答案 1 :(得分:1)

我假设您已添加.11或更高版本的Application Insights SDK。如果是这样,在将Application Insights SDK添加到项目后,将instrumenation键添加到applicationinsights.config文件中,如下所示:

</TelemetryInitializers>
<InstrumentationKey>your-guid-goes-ere</InstrumentationKey>
</ApplicationInsights>

答案 2 :(得分:0)

我仍然没有在配置级别找到任何解决方案。但是,我们可以在初始化TelemetryClient对象时提供Instrumentation Key:

var telemetryClient = new TelemetryClient(new TelemetryConfiguration()
                            {
                                InstrumentationKey = "Key"
                            });

请不要犹豫,发布答案我们如何通过配置提供Instrumentation密钥。

感谢。

答案 3 :(得分:0)

在Configuration方法中使用以下代码。

Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey = key;

答案 4 :(得分:0)

就我而言,我只需要将我的 IP 添加到 Azure 数据库防火墙 - InstrumentationKey 在我们收到有关防火墙的解释性错误之前失败,因此可能会造成混淆。