c# - 升级到 .NET Core 1.1.1 后,ASP.NET Core MVC 应用程序洞察力停止工作

标签 c# .net asp.net-core asp.net-core-mvc azure-application-insights

我在 2016 年 12 月开发了一个简单的 ASP.NET Core 应用程序。它在应用程序洞察和遥测方面运行良好。

现在 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"

屏幕:

enter image description here

从 project.json 升级到新的 csproj 并使用新的 Visual Studio 2017 没有帮助。

看起来 ApplicationInsightsJavaScript 基本上已从 API 中删除。那么我该如何启用 javascript 应用程序洞察力?

最佳答案

GitHub 上记录了从 ApplicationInsights 1.x 到 2.x 的重大变化 release notes .

  • This release contains a rewrite of the SDK internals for better .NET Core integration and initialization.
  • UseApplicationInsightsRequestTelemetry is obsolete, the logic it used to perform is handled automatically now and calls to this method should be deleted from Startup.cs.
  • UseApplicationInsightsExceptionTelemetry is obsolete, exception telemetry is handled automatically internally now. You should delete calls to this method from Startup.cs otherwise you will get duplicate exception telemetry reported.
  • The MVC dependency for the JavaScript snippet has been removed so in order to include the JavaScript snippet now you need to make the following changes:
    • In _ViewImports.cshtml replace @inject Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration TelemetryConfiguration with @inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet
    • In _Layout.cshtml replace @Html.ApplicationInsightsJavaScript(TelemetryConfiguration) with @Html.Raw(JavaScriptSnippet.FullScript)

关于c# - 升级到 .NET Core 1.1.1 后,ASP.NET Core MVC 应用程序洞察力停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43682743/

相关文章:

c# - Enterprise Library 4.1 Logger,日志在哪里?

c# - 如何使用 c# 和 Google API 在 Google 日历中创建事件?

.net - 添加扩展方法我觉得应该在框架: bad idea?

.net - 在 UserNamePasswordValidator 中存储自定义信息

asp.net - Web.Api 未在 Post 中反序列化子数组的属性

angular - 在 IIS 上设置 Angular 深度链接

c# - 翻译解释一些C++位操作转C#

c# - 如何在 T4 模板中使用 resx 资源文件

c# - 检查字符串是否可以解析为 int 数组的最佳方法是什么?

c# - 如何在启动时启动服务 (`IServiceCollection` )