应用洞察
Application Insights
我有两个项目:一个是MVC4应用程序,另一个是输出类型class库。
我想使第二个项目(class 库中的一个)成为见解交流层。
代码编译成功,服务器运行正常
public static void SaveMetric(string title, double value,
string azureKey, Dictionary<string, string> properties = null)
{
try
{
TelemetryClient telemetry = new TelemetryClient();
telemetry.InstrumentationKey = azureKey;
telemetry.TrackMetric(title, value, properties);
}
catch (Exception ex)
{
var a = "";
}
}
当我调用 telemetry.TrackMetric
函数时问题就开始了。此代码returns错误:
"Object reference not set to an instance of an object."(System.NullReferenceException).
是否可以在 class 图书馆项目中使用 Microsoft Insights?如果是,我做错了什么?
深入寻找解决方案后,我发现问题出在我所做的更新(版本 1.0 到 1.2)上。解决方案是将软件降级到 v1.0.
我最近升级到 1.2.0 并且 运行 遇到了同样的问题。除了标准设置之外,我的代码还用 web.config
中存储的一个覆盖了 ApplicationInsights.config
中的检测密钥。这是通过 global.asax - Application_Start
完成的。该代码在本地运行良好,但在部署到 Azure 时就会崩溃。
原来是我如何访问 web.config
的问题。我不得不将我的代码从使用 WebConfigurationManager
切换到 ConfigurationManager
。
这个Application_Start
代码:
Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey = System.Web.Configuration.WebConfigurationManager.AppSettings["MyInstrumentationKey"];
改为:
Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey = System.Configuration.ConfigurationManager.AppSettings["MyInstrumentationKey"];
我有两个项目:一个是MVC4应用程序,另一个是输出类型class库。
我想使第二个项目(class 库中的一个)成为见解交流层。
代码编译成功,服务器运行正常
public static void SaveMetric(string title, double value,
string azureKey, Dictionary<string, string> properties = null)
{
try
{
TelemetryClient telemetry = new TelemetryClient();
telemetry.InstrumentationKey = azureKey;
telemetry.TrackMetric(title, value, properties);
}
catch (Exception ex)
{
var a = "";
}
}
当我调用 telemetry.TrackMetric
函数时问题就开始了。此代码returns错误:
"Object reference not set to an instance of an object."(System.NullReferenceException).
是否可以在 class 图书馆项目中使用 Microsoft Insights?如果是,我做错了什么?
深入寻找解决方案后,我发现问题出在我所做的更新(版本 1.0 到 1.2)上。解决方案是将软件降级到 v1.0.
我最近升级到 1.2.0 并且 运行 遇到了同样的问题。除了标准设置之外,我的代码还用 web.config
中存储的一个覆盖了 ApplicationInsights.config
中的检测密钥。这是通过 global.asax - Application_Start
完成的。该代码在本地运行良好,但在部署到 Azure 时就会崩溃。
原来是我如何访问 web.config
的问题。我不得不将我的代码从使用 WebConfigurationManager
切换到 ConfigurationManager
。
这个Application_Start
代码:
Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey = System.Web.Configuration.WebConfigurationManager.AppSettings["MyInstrumentationKey"];
改为:
Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey = System.Configuration.ConfigurationManager.AppSettings["MyInstrumentationKey"];