【Linux上 发布.Net Core】教程文章相关的互联网学习教程文章

.NET Core 3.0 可回收程序集加载上下文的实现

一、前世今生 .NET诞生以来,程序集的动态加载和卸载都是一个Hack的技术,之前的NetFx都是使用AppDomain的方式去加载程序集,然而AppDomain并没有提供直接卸载一个程序集的API,而是要卸载整个AppDomain才能卸载包含在其中的所有程序集。然而卸载整个CurrentAppDomain会使程序不能工作。可能有人另辟西经,创建别一个AppDomain来加载/卸载程序集,但是由于程序集之间是不能跨域访问的,也导致只能通过Remote Proxy的方式去访问,这...

使用dotnet-dump 查找 .net core 3.0 占用CPU 100%的原因解析

公司的产品一直紧跟 .net core 3.0 preview 不断升级, 部署到 Linux 服务器后, 偶尔会出现某个进程CPU占用100%.由于服务部署在云上, 不能使用远程调试; 在局域网内的Linux 服务器 或 Windows开发机上又不能重现这个问题, 联想到Java的jstack, 很是羡慕啊. 想到.net core 已经出来这么久了, 还是试着找找看吧, 结果还真找到一篇博客Introducing diagnostics improvements in .NET Core 3.0这篇文章介绍了3个工具 ?dotnet-counters: ...

.NET Corek中Git的常用命令及实战演练【图】

写在前面 上篇文章我带着大家通过分析了一遍ASP.NET Core的源码了解了它的启动过程,然后又带着大家熟悉了一遍配置文件的加载方式,最后引出了依赖注入以及控制反转的概念!如果大家把前面几张都理解了,那么你也就入了ASP.NET Core的大门了。但是我们还需要一个版本控制工具来提高我们的编码效率。因此这篇文章我将带着大家了解下Git这个版本控制工具以及为什么选择它。 下面我们将通过故事的形式从Git的历史谈起,并讲述Git的强大...

ASP.NET Core MVC学习教程之路由(Routing)

前言 ASP.NET Core MVC 路由是建立在ASP.NET Core 路由的,一项强大的URL映射组件,它可以构建具有理解和搜索网址的应用程序。这使得我们可以自定义应用程序的URL命名形式,使得它在搜索引擎优化(SEO)和链接生成中运行良好,而不用关心Web服务器上的文件是怎么组织的。我们可以方便的使用路由模板语法定义路由,路由模板语法支持路由值约束,默认值和可选值。 基于约束的路由允许全局定义应用支持的URL格式,以及这些格式是怎样各...

ASP.NET Core中间件计算Http请求时间示例详解

ASP.NET Core通过RequestDelegate这个委托类型来定义中间件 public delegate Task RequestDelegate(HttpContext context);可将一个单独的请求委托并行指定为匿名方法(称为并行中间件),或在类中对其进行定义。可通过Use,或在Middleware类中配置要传递给委托执行的方法(参数类型HttpContext,返回值类型Task)。 public static IApplicationBuilder Use(this IApplicationBuilder app, Func<HttpContext, Func<Task>, Task> middl...

.NET CORE中比较两个文件内容是否相同的最快方法

前言 最近项目有个需求,需要比较两个任意大小文件的内容是否相同,要求如下: 项目是.NET CORE,所以使用C#进行编写比较方法文件大小任意,所以不能将文件内容全部读入到内存中进行比较(更专业点说,需要使用非缓存的比较方式)不依赖第三方库越快越好为了选出最优的解决方案,我搭建了一个简单的命令行工程,准备了两个大小为912MB的文件,并且这两个文件内容完全相同.在本文的最后,你可以看到该工程的Main方法的代码. 下面我们开始尝试各个...

ASP.NET Core实现自定义WebApi模型验证详解

Framework时代  在Framework时代,我们一般进行参数验证的时候,以下代码是非常常见的 [HttpPost]public async Task<JsonResult> SaveNewCustomerAsnyc(AddCustomerInput input){if (!ModelState.IsValid){return Json(Result.FromCode(ResultCode.InvalidParams));}.....}  或者高级一点是实现IActionFilter进行拦截,如下:   public class ApiValidationFilter : IActionFilter{public bool AllowMultiple => false;publi...

Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解【图】

1、前言 为什么我们要隐藏部分接口? 因为我们在用swagger代替接口的时候,难免有些接口会直观的暴露出来,比如我们结合Consul一起使用的时候,会将健康检查接口以及报警通知接口暴露出来,这些接口有时候会出于方便考虑,没有进行加密,这个时候我们就需要把接口隐藏起来,只有内部的开发者知道。 为什么要分组? 通常当我们写前后端分离的项目的时候,难免会遇到编写很多接口供前端页面进行调用,当接口达到几百个的时候就需要区...

ASP.NET Core MVC基础学习之局部视图(Partial Views)

1.什么是局部视图局部视图是在其他视图中呈现的视图。通过执行局部视图生成的HTML输出呈现在调用视图中。与视图一样,局部视图使用 .cshtml 文件扩展名。当希望在不同视图之间共享网页的可重用部分时,就可以使用局部视图。 2.什么时候使用局部视图局部视图是将大视图分成小组件的有效方法。通用的布局元素应在 _Layout.cshtml 中指定,非布局可重用内容可以封装成局部视图。如果一个由几个逻辑部分组成的复杂页面,那么将每个逻辑...

ASP.NET Core MVC学习之视图组件(View Component)

1.视图组件介绍视图组件是 ASP.NET Core MVC 的新特性,类似于局部视图,但它更强大。视图组件不使用模型绑定,并且仅依赖于调用它时所提供的数据。视图组件特点:呈块状,而不是整个响应包括在控制器和视图之间发现的相同的关注点和可测试性优点可以拥有参数和业务逻辑通常从布局页面调用视图组件可以用在任何需要重复逻辑且对局部视图来说过于复杂的情况,例如:动态导航菜单标签云(需要查询数据库)登录面板购物车最近发表的文...

ASP.NET Core利用Jaeger实现分布式追踪详解【图】

前言最近我们公司的部分.NET Core的项目接入了Jaeger,也算是稍微完善了一下.NET团队的技术栈。 至于为什么选择Jaeger而不是Skywalking,这个问题我只能回答,大佬们说了算。 前段时间也在CSharpCorner写过一篇类似的介绍 Exploring Distributed Tracing Using ASP.NET Core And Jaeger。 下面回到正题,我们先看一下Jaeger的简介 Jaeger的简单介绍Jaeger是Uber开源的一个分布式追踪的工具,主要为基于微服务的分布式系统提供监测和...

浅谈从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》这篇文档,就着今天遇到的问题,所以我整理下,希望对大伙有所帮助,当然大伙也...

详解.net core webapi 前后端开发分离后的配置和部署【图】

背景:现在越来越多的企业都采用了在开发上前后端分离,前后端开发上的分离有很多种,那么今天,我来分享一下项目中得的前后端分离。 B/S Saas 项目:(这个项目可以理解成个人中心,当然不止这么点功能) 前端:node.js + vue 后端:.net core webapi 前端安装 node.js 跟创建vue项目这些不是这篇文章的重点,重点在于项目完成后的部署。 .net corewebapi创建后,默认就创建了一个wwwroot的文件夹,这个文件夹是用来放置静态文件的...

详解ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁【图】

引言:最近回头看了看开发的.Net Core 2.1项目的复盘总结,其中在多处用到Redis实现的分布式锁,虽然在OnResultExecuting方法中做了防止死锁的处理,但在某些场景下还是会发生死锁的问题,下面我只展示部分代码:问题: (1)这里setnx设置的值“1”,我想问,你最后del的这个值一定是你自己创建的吗? (2)图中标注的步骤1和步骤2不是原子操作,会有死锁的概率吗? 大家可以思考一下先,下面让我们带着这两个问题往下看,下面介绍...

详解.Net Core 权限验证与授权(AuthorizeFilter、ActionFilterAttribute)

在.Net Core 中使用AuthorizeFilter或者ActionFilterAttribute来实现登录权限验证和授权 一、AuthorizeFilter新建授权类AllowAnonymous继承AuthorizeFilter,IAllowAnonymousFilterpublic class AllowAnonymous : AuthorizeFilter, IAllowAnonymousFilter {}新建拦截类继承AuthorizeFilterpublic class LoginAuthorzation : AuthorizeFilter {}在拦截类里加入处理请求的方法 /// <summary>/// 请求验证,当前验证部分不要抛出异常,...