前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >迁移 Azure Application Insights 到 .NET Core 3.0

迁移 Azure Application Insights 到 .NET Core 3.0

作者头像
Edi Wang
发布于 2019-09-03 09:41:17
发布于 2019-09-03 09:41:17
1K0
举报
文章被收录于专栏:汪宇杰博客汪宇杰博客

导语

.NET Core 3.0 即将在本月的.NET Conf大会上发布正式版,在这之前包括我在内的不少朋友已经迫不及待使用预览版迁移了自己的应用,并爆得体无完肤。好在从Preview 7开始,API已经固定,可以当作正式版的内容去学习。今天我介绍的就是 Azure Application Insights 这块的迁移技巧。

背景

我的老应用程序使用 ASP.NET Core 2.2,配合 Azure Application Insights SDK 2.7 进行云端监控,这也是目前正式版渠道大部分用户的使用情况。应用迁移 .NET Core 3.0 不在本文讨论范围之内,大家可以自行解决。但是 Application Insights 不升级就会编译爆炸,升级了也可能运行爆炸,我们来看看如何不爆。

使用最新版SDK

目前最新版的 SDK 是 2.8.0-beta2,我们必须用这个版本大培 .NET Core 3.0 preview 8

<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.8.0-beta2" />

如果你用的是 beta 1 或者更早的版本,那么你的代码一跑就爆:

https://github.com/microsoft/ApplicationInsights-aspnetcore/issues/957

这个问题已在 beta 2 中修复

https://github.com/microsoft/ApplicationInsights-aspnetcore/pull/959

不要相信工具链

由于目前正式版渠道的 Visual Studio 2019 并不知道如何正确的向 .NET Core 3.0 的项目加入 Application Insights,因此不要用 VS2019 偷懒一键添加,生成的代码会搞乱你的项目,并无法编译。

自己动手,领取福报

首先,你会发现 Program.cs 里的 UseApplicationInsights() 爆了,原因有两个:

  1. ASP.NET Core 3.0 使用 IHostBuilder 替代了 IWebHostBuilder
  2. UseApplicationInsights() 已被标记为 obsolete(大快人心)

关于IHostBuilder的改动,可以看微软官网.NET Core升级文档解决。UseApplicationInsights() 可以直接删除,使用新 API:

在 Startup.cs 的 ConfigureServices() 方法里加入:

services.AddApplicationInsightsTelemetry();

这个方法有个可选参数是 InstrumentationKey,你可以手工传入,也可以不写,不写的话它会依赖环境变量或配置文件里的:

"ApplicationInsights": {

"InstrumentationKey": "你的KEY"

}

我的建议是不要手工传入参数,而依赖配置文件或环境变量,这样可以在 Azure App Services 里直接关联 Application Insights

Razor 页面里的代码可以不用动,和以前一样:

@inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet

...

@Html.Raw(JavaScriptSnippet.FullScript)

另外,如果你用了 TelemetryConfiguration.Active,那么还会爆一次。这个 Active 因为大家太喜欢,被obsolete了。

砍刀传送门:https://github.com/microsoft/ApplicationInsights-dotnet/issues/1152

比如原来你的代码希望在非生产环境下关闭遥测,基本上都会这么写,毕竟来源于官网文档:

TelemetryConfiguration.Active.DisableTelemetry = true;

而这个官网文档目前还没更新

https://docs.microsoft.com/en-us/azure/azure-monitor/app/api-custom-events-metrics#disabling-telemetry

而是在另一篇文档里提到了 .NET Core 用 Active 其实一直是无效的:

https://docs.microsoft.com/en-us/azure/azure-monitor/app/asp-net-core#configure-the-application-insights-sdk

这东西RTM很久了,坑得一逼也直到现在才给个编译警告……

根据政治正确的万物基于DI定律,现在我们也必须从DI里拿这个TelemetryConfiguration对象。

public void Configure(IApplicationBuilder app, TelemetryConfiguration configuration)

{

configuration.DisableTelemetry = true;

}

清理垃圾

如果你的老应用是用 VS2019 一键梭哈方式全自动添加的 Application Insights,那么会留下这么几个地方可以删除,不会影响遥测数据,满足洁癖控:

.csproj 文件

<ApplicationInsightsResourceId>/subscriptions/****/resourcegroups/****/providers/microsoft.insights/components/****</ApplicationInsightsResourceId> <ApplicationInsightsAnnotationResourceId>/subscriptions/****/resourcegroups/****/providers/microsoft.insights/components/****</ApplicationInsightsAnnotationResourceId>

ConnectedService.json 与 Connected Services 文件夹

\Connected Services\Application Insights\ConnectedService.json

不过要注意,这会让你失去从 VS2019 的 Code Lens 里直接查看 Application Insights 数据的装逼能力。如果你不在意这个逼的装法,那就可以删这些代码。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 汪宇杰博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
与时俱进 | 博客现已运行在 .NET Core 3.0 及 Azure 上
9月23日,微软正式发布了 .NET Core 3.0,这个版本具有大量新功能和改进。我也在第一时间将自己的博客网站更新到了 .NET Core 3.0,并且仍然跑在微软智慧云 Azure 国际版的应用服务上。本文总结了我在博客迁移过程中所有的要点。
Edi Wang
2019/09/26
1K0
与时俱进 | 博客现已运行在 .NET Core 3.0 及 Azure 上
福爆 | 博客升级 .NET Core 3.0 又踩一坑
昨天刚发了一篇《与时俱进 | 博客现已运行在 .NET Core 3.0 及 Azure 上》得瑟,本以为踩完了坑,结果晚上博客又爆了。Azure Application Insights 监控里发现了大量异常。我们来看看我如何收取福爆。
Edi Wang
2019/09/29
1.2K0
福爆 | 博客升级 .NET Core 3.0 又踩一坑
使用Azure Application Insignhts监控ASP.NET Core应用程序
Application Insignhts是微软开发的一套监控程序。他可以对线上的应用程序进行全方位的监控,比如监控每秒的请求数,失败的请求,追踪异常,对每个请求进行监控,从http的耗时,到SQL查询的耗时,完完整整的被记录下来。当对程序进行优化跟排错时非常好使。它原来是visualstudio online的一个服务,现在合并进了Azure,作为Azure Monitor的一个组件。虽然合并进了Azure,但是Application Insignhts还是免费的。
MJ.Zhou
2020/07/16
8440
【壹刊】Azure Monitor 一:Application Insights
 Azure Monitor 是 Azure 中的一项完整堆栈监视服务,是一种收集和分析遥测数据的服务。它提供了一组完整的功能来监视 Azure 资源以及其他云中和本地的资源。Azure Monitor 该服务有助于实现云应用程序以及本地资源和应用程序的最大性能和可用性。它显示了应用程序的执行方式,并可识别应用程序存在的任何问题。
老张的哲学
2022/04/11
4850
【壹刊】Azure Monitor 一:Application Insights
将Azure Application Insights的数据整合到你自己的应用中
微软智慧云Azure有一个非常强大的监视工具, 称为Application Insights。它可以监视我们Web应用程序的各个方面,包括客户端和服务器指标、错误详细信息、性能等。我的博客也在使用Application Insights,但每次我想要查看数据时, 我都必须转到Azure门户,即使是PV或服务器响应时间等基本指标也是如此。我希望我能在自己的应用程序中的获取这些数据,并仅将Azure门户用于高级分析方案。本文将给出解决方案。
Edi Wang
2019/07/15
1.7K0
将Azure Application Insights的数据整合到你自己的应用中
asp.net core发布到docker报Microsoft.ApplicationInsights.AspNetCore miss的错误
dotnet core 2.1的asp.net core在docker下部署的时候发生下面的错误。 Error: An assembly specified in the application dependencies manifest (MyApp.deps.json) was not found: package: 'Microsoft.ApplicationInsights.AspNetCore', version: '2.1.1' path: 'lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll' 解决办法是手动publish加上参数把'Microsoft.ApplicationInsights.AspNetCore这个包不要包含进去。
MJ.Zhou
2018/07/31
3730
使用ASP.NET Core 3.x 构建 RESTful API - 1.准备工作
以前写过ASP.NET Core 2.x的REST API文章,今年再更新一下到3.0版本。
solenovex
2019/11/10
2.6K0
使用ASP.NET Core 3.x 构建 RESTful API - 1.准备工作
IHostingEnvironment VS IHostEnvironment - .NET Core 3.0中的废弃类型
在本篇博客中,我将描述与之前版本相比,ASP.NET Core 3.0 中已经被标记为废弃的类型。我将解释一下为什么这些类型被废弃了,它们的替换类型是什么,以及你应该什么时候使用它们。
心莱科技雪雁
2020/03/25
1K0
IHostingEnvironment VS IHostEnvironment - .NET Core 3.0中的废弃类型
ASP.NET Core 3.0 迁移避坑指南
.NET Core 3.0将会在 .NET Conf 大会上正式发布,截止今日发布了9个预览版,改动也是不少,由于没有持续关注,今天将前面开源的动态WebApi项目迁移到.NET Core 3.0还花了不少时间踩坑,给大家分享一下我在迁移过程中遇到的坑。迁移的版本是当前Release最新版本 .NET Core 2.2 到 .NET Core 3.0 Preview 9。
晓晨
2019/09/12
9970
ASP.NET Core 3.0 迁移避坑指南
Spring Boot 项目上传日志到 Azure Application Insights
你需要做的就是在你的 Spring Boot 项目中配置好依赖和参数后,Spring Boot 项目启动后就会自动将日志上传到 Azure 供分析。
HoneyMoose
2020/10/29
4420
Spring Boot 项目上传日志到 Azure Application Insights
【 .NET Core 3.0 】框架之二 || 后端项目搭建
至于为什么要搭建.Net Core 平台,这个网上的解释以及铺天盖地,想了想,还是感觉重要的一点,跨平台,嗯!没错,而且比.Net 更容易搭建,速度也更快,所有的包均由Nuget提供,不再像以前的单纯引入组件,
老张的哲学
2022/04/10
2.1K0
【 .NET Core 3.0 】框架之二 || 后端项目搭建
What?VS2019创建新项目居然没有.NET Core3.0的模板?Bug?
今天是个值得欢喜的日子,因为VS2019在今天正式发布了。作为微软粉,我已经用了一段时间的VS2019 RC版本了。但是,今天有很多小伙伴在我的《ASP.NET Core 3.0 上的gRPC服务模板初体验(多图)》文章中留言说,装了VS2019后没有gRPC的模板。What?难不成VS2019出BUG了,于是乎,我趁着中午的时间安装了VS2019的社区版。
依乐祝
2019/04/17
2.8K0
What?VS2019创建新项目居然没有.NET Core3.0的模板?Bug?
从壹开始学习NetCore 44 ║ 最全的 netcore 3.0 升级实战方案
缘起 1、哈喽大家中秋节(后)好呀!感觉已经好久没有写文章了,但是也没有偷懒哟,我的视频教程《系列一、NetCore 视频教程(Blog.Core)》也已经录制八期了,还在每周末同步更新中,欢迎大家多多指教。 2、除此之外呢,我也在平时的时间帮朋友开发了一个小项目,就是使用 .net mvc+vue+ele+mongo 框架写的项目,之前一直想着用mvc结合着vue写,这次也终于上手了,不过是一个小的demo,因为是朋友的项目,所以就不开源了。 言归正传,👉 从2018年8月就开始听说 netcore 要
老张的哲学
2022/04/10
9020
从壹开始学习NetCore 44 ║ 最全的 netcore 3.0 升级实战方案
.NET Core 2.0发布了
乐百川
2018/01/09
1.3K0
ASP.NET Core 6框架揭秘实例演示[23]:ASP.NET Core应用承载方式的变迁
ASP.NET Core应用本质上就是一个由中间件构成的管道,承载系统将应用承载于一个托管进程中运行起来,其核心任务就是将这个管道构建起来。从设计模式的角度来讲,“管道”是构建者(Builder)模式最典型的应用场景,所以ASP.NET Core先后采用的三种承载方式都是采用这种模式。(本篇提供的实例已经汇总到《ASP.NET Core 6框架揭秘-实例演示版》)
蒋金楠
2022/05/09
1K0
ASP.NET Core 本地调试时如何禁用Application Insights
微软智能云Azure的Application Insights服务是一种应用程序监控系统,给运维带来了极大的方便。但有时候会遇到一些小麻烦,我们来看看如何解决。
Edi Wang
2019/07/09
1.3K0
ASP.NET Core 本地调试时如何禁用Application Insights
ASP.NET Core 3.0 上的gRPC服务模板初体验(多图)
早就听说ASP.NET Core 3.0中引入了gRPC的服务模板,正好趁着家里电脑刚做了新系统,然后装了VS2019的功夫来体验一把。同时记录体验的过程。如果你也想按照本文的步骤体验的话,那你得先安装.NET Core3.0预览版的SDK。至于开发工具我用的时VS2019,当然你也可以使用VS Code进行。
依乐祝
2019/04/09
1.7K0
ASP.NET Core 3.0 上的gRPC服务模板初体验(多图)
ASP.NET Core 2.2使用IIS部署要注意的路径问题
ASP.NET Core 2.2 推出已经有一段时间了,其中有个新功能,能够使用新的AspNetCoreModuleV2并且在IIS上使用InProcess模式部署,以大幅提高性能。这几天Azure App Service终于完成了这个新版模块的部署,我第一时间将我的博客配置到新模块上,结果爆了。我们来看看原因和解决方式。
Edi Wang
2019/07/15
3K0
ASP.NET Core 2.2使用IIS部署要注意的路径问题
打造跨平台.NET Core后台服务
续之前讲的在TopShelf上部署ASP.NET Core程序,作为后台服务运行,自从.NET Core 3.0出现以后,出现了自带的Generic Host,使得自托管服务变为可能。
梁规晓
2020/11/05
1K0
打造跨平台.NET Core后台服务
从ASP.NET Core2.2到3.0你可能会遇到这些问题
趁着假期的时间所以想重新学习下微软的官方文档来巩固下基础知识。我们都知道微软目前已经发布了.NET Core3.0的第三个预览版,同时我家里的电脑也安装了vs2019。So,就用vs2019+.NET Core3.0来跟着做一下Contoso University这个WEB应用,但是在基于3.0进行操作的时候遇到了一些问题,所以我就查看了微软的《从 ASP.NET Core 迁移 2.2 到 3.0 预览版 2》这篇文档,就着今天遇到的问题,所以我整理下,希望对大伙有所帮助,当然大伙也可以直接阅读微软的官方文档进行查看。但是我在阅读官方说明的时候,总感觉翻译的不是很准确,读起来很拗口,所以这里我是自己的理解对官方文档的一个补充。
依乐祝
2019/04/17
1.4K0
推荐阅读
相关推荐
与时俱进 | 博客现已运行在 .NET Core 3.0 及 Azure 上
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档