我有一个简单的ASP.NET核心应用程序,我在2016年12月工作。它在应用程序见解和遥测方面工作得很好。
4个月后,我想开始从.NET Core 1.1.0升级到1.1.1。在此过程中,程序包Microsoft.ApplicationInsights.AspNetCore
已从版本1.0.2
更新为版本2.0.0
。
这很遗憾地导致我的应用停止工作,特别是我收到此错误:
An error occurred during the compilation of a resource required to process this request. Please review the following specific error details and modify your source code appropriately.
/Views/Shared/_Layout.cshtml
'IHtmlHelper<dynamic>' does not contain a definition for 'ApplicationInsightsJavaScript' and no extension method 'ApplicationInsightsJavaScript' accepting a first argument of type 'IHtmlHelper<dynamic>' could be found (are you missing a using directive or an assembly reference?)
+
@Html.ApplicationInsightsJavaScript(TelemetryConfiguration)
Show compilation source
#pragma checksum "/Views/Shared/_Layout.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "050a2afdfb4a44e17be72e76627a3d3a0d0b7d5a"
namespace AspNetCore
{
#line 1 "/Views/_ViewImports.cshtml"
屏幕:
从project.json升级到新的csproj并使用新的Visual Studio 2017并没有帮助。
看起来ApplicationInsightsJavaScript基本上已从API中删除。我如何启用javascript应用程序洞察呢?
答案 0 :(得分:21)
从ApplicationInsights 1.x到2.x有重大更改,这些更改记录在GitHub release notes上。
- 此版本包含重写SDK内部以获得更好的.NET 核心集成和初始化。
UseApplicationInsightsRequestTelemetry
已经过时,它使用的逻辑 现在自动处理执行并调用此方法 应该从Startup.cs中删除。UseApplicationInsightsExceptionTelemetry
已过时,例外 遥测现在在内部自动处理。你应该删除 从Startup.cs调用此方法,否则您将获得重复 异常遥测报道。- JavaScript的MVC依赖项 已删除代码段,以便包含JavaScript代码段 现在您需要进行以下更改:
- 在_ViewImports.cshtml中,将
@inject Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration TelemetryConfiguration
替换为@inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet
- 在_Layout.cshtml中替换
。{@Html.ApplicationInsightsJavaScript(TelemetryConfiguration)
与@Html.Raw(JavaScriptSnippet.FullScript)