202303-28 运用.net core中实例讲解RabbitMQ 目录一、RabbitMQ简介(1) AMQP协议(2)AMQP专业术语(3)RabbitMQ整体架构二、安装RabbitMQ三、RabbitMQ六种队列模式在.NetCore中使用(1)简单队列(2)工作队列模式(3)发布订阅模式(4)路由模式(推荐使用)(5)主题模式(6)RPC模式总结一、RabbitMQ简介是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ是使用Erlang(高并发语言)语言来编写的,并且RabbitMQ是基于AMQP协议的。(1) AMQ... 继续阅读 >
202301-31 理解ASP.NET Core 启动类(Startup) 目录准备工作:一份ASP.NETCoreWebAPI应用程序Startup类Startup构造函数ConfigureServicesConfigure省略Startup类IStartupFilterIHostingStartupHostingStartup程序集HostingStartup特性激活HostingStarup程序集1.使用环境变量(推荐)2.在程序中配置多环境配置环境配置方式基于环境的Startup1.将IWebHostEnvironment注入Startup类2.Startup方法约定3.Startup类约定准备工作:一份ASP.NETCoreWebAPI应用程序当我们来... 继续阅读 >
202301-13 理解ASP.NET Core 中间件(Middleware) 目录中间件中间件管道RunUseUseWhenMapMapWhenRun&Use&UseWhen&Map&Map编写中间件并激活基于约定的中间件基于工厂的中间件基于约定的中间件VS基于工厂的中间件中间件先借用微软官方文档的一张图:可以看到,中间件实际上是一种配置在HTTP请求管道中,用来处理请求和响应的组件。它可以:决定是否将请求传递到管道中的下一个中间件可以在管道中的下一个中间件处理之前和之后进行操作此外,中间件的注册是有顺序的... 继续阅读 >
202301-13 .NET Core对象池的应用:扩展篇 目录一、池化集合二、池化StringBuilder三、ArrayPool<T>四、MemoryPool<T> 原则上所有的引用类型对象都可以通过对象池来提供,但是在具体的应用中需要权衡是否值得用。虽然对象池能够通过对象复用的方式避免GC,但是它存储的对象会耗用内存,如果对象复用的频率很小,使用对象池是不值的。如果某个小对象的使用周期很短,能够确保GC在第0代就能将其回收,这样的对象其实也不太适合放在对象池... 继续阅读 >
202205-17 Asp.net Core 如何设置黑白名单(路由限制) 在原有的AspnetMvc中我们会使用到路由访问限制,在AppStart/RouteConfig.cs中写上如下:routes.IgnoreRoute("{resource}.axd/{*pathInfo}");但是在aspnetcoremvc已经不存在RouteConfig.cs的这个给文件和这种写法,我们该如何在Aspnetcoremvc中实现相同效果呢?这里我们需要使用到的中间件时UrlFirewall1)说明:UrlFirewall是一个开源、轻便的对http请求进行过滤的中间件,可使用在webapi或者网关2)介绍:UrlFirewall是一款... 继续阅读 >
202110-29 .net core 基于Hangfire+Mysql持久化实现定时任务配置方法 1.negut引入hangfire相关包Hangfire.AspNetCore,Hangfire.Core,Hangfire.Dashboard.BasicAuthorization,Hangfire.MySqlStorage2.Appsetting配置hangfire资源"HangFire":{"Connection":"Server=127.0.0.1;uid=root;pwd=wakamysql666;database=Hangfire_DB;AllowLoadLocalInfile=true;AllowUserVariables=True;","pathMatch":"/hangfire","Login":"login","PasswordClear":"pwd"},3.自定义扩展类///<s... 继续阅读 >
202110-17 .NET Core中如何实现或使用对象池? 目录前言池化策略对象池的使用指定对象池容量在ASP.NETCore中使用总结前言池这个概念大家都很熟悉,比如我们经常听到数据库连接池和线程池。它是一种基于使用预先分配资源集合的性能优化思想。简单说,对象池就是对象的容器,旨在优化资源的使用,通过在一个容器中池化对象,并根据需要重复使用这些池化对象来满足性能上的需求。当一个对象被激活时,便被从池中取出。当对象被停用时,它又被放回池中,等待下一个请求。对象池一... 继续阅读 >
202110-12 .Net Core限流的实现示例 目录一、环境二、基础使用1.设置2.规则设置3.特殊规则的启用 三、请求返回头四、使用Redis存储1、访问计数 2、ip特殊规则3、客户端特殊规则 五、修改规则一、环境1.vs20192..NetCore3.13.引用AspNetCoreRateLimit4.0.1二、基础使用1.设置在Startup文件中配置如下,把配置项都放在前面:publicvoidConfigureServices(IServiceCollectionservices){//从appsettings.json中加载ip限流配置通用规则se... 继续阅读 >
202109-16 .Net Core中使用Autofac替换自带的DI容器的示例 目录项目创建方案演示.NetCore自带DI不同的特性批量注入属性注入存储并提取容器实例为什么叫浅谈呢?就是字面上的意思,讲得比较浅,又不是不能用(这样是不对的)!!!Aufofac大家都不陌生了,说是.Net生态下最优秀的IOC框架那是一点都过分。用的人多了,使用教程也十分丰富,官网教程也比较详细(如果英文功底还不错的话)。那我为什么还要写这样一篇博客呢,一是用作学习笔记,二就是闲的。废话不多说,开始正文项目创建云创... 继续阅读 >
202109-16 .Net Core中使用Autofac替换自带的DI容器的示例 目录项目创建方案演示.NetCore自带DI不同的特性批量注入属性注入存储并提取容器实例为什么叫浅谈呢?就是字面上的意思,讲得比较浅,又不是不能用(这样是不对的)!!!Aufofac大家都不陌生了,说是.Net生态下最优秀的IOC框架那是一点都过分。用的人多了,使用教程也十分丰富,官网教程也比较详细(如果英文功底还不错的话)。那我为什么还要写这样一篇博客呢,一是用作学习笔记,二就是闲的。废话不多说,开始正文项目创建云创... 继续阅读 >
202109-14 asp.net core配合vue实现后端验证码逻辑 目录概述部分原理源码概述网上的前端验证码逻辑总感觉不安全,验证码建议还是使用后端配合验证。如果产品确定可以上网的话,就可以使用腾讯,百度等第三方验证,对接方便。但是产品可能内网部署,就必须自己写了。本文章就是基于这一点来实现的。前端验证码显示一个图片,后端生成图片。部分原理1.前端调用生端获取图片时,传入一个roomID,后端生成一个4位验征码,放入redis中。然后生成一个图片返回。2.前端显示图片,登录时将ro... 继续阅读 >
202109-10 .net core中编辑json配置文件的方法 引言最近在具体项目开发应用中,项目采用的json格式配置文件,配置文件的加载采用的IConfiguration接口对象进行的管理,这是.netstandard时代,微软所提供的现代化的配置管理工具。项目设计中,需要在运行过程中,将远程服务端发送过来的配置信息回写到配置文件中。然而,必应也好,百度也罢,翻遍网络,这套现代化的配置管理模型中,却找不到一个可以改变配置回写的方法。无奈之下,只好自己动手,手动造轮子了。.NETStandard时... 继续阅读 >
202109-10 在 .NET Core 中使用 Diagnostics (Diagnostic Source) 记录跟踪信息 前言最新一直在忙着项目上的事情,很久没有写博客了,在这里对关注我的粉丝们说声抱歉,后面我可能更多的分享我们在微服务落地的过程中的一些经验。那么今天给大家讲一下在.NETCore2中引入的全新DiagnosticSource事件机制,为什么说是全新呢?在以前的.NETFramework有心的同学应该知道也有Diagnostics,那么新的.NETCore中有什么变化呢?让我们一起来看看吧。DiagnosticsDiagnostics一直是一个被大多数开发者忽视... 继续阅读 >
202109-07 .net core日志系统相关总结 目录前言正文前言本节开始整理日志相关的东西。先整理一下日志的基本原理。正文首先介绍一下包:1.Microsoft.Extengsion.Logging.Abstrations这个是接口包。2.Microsoft.Extengsion.Logging这个是实现包3.Microsoft.Extengsion.Logging.Console这个是扩展包代码如下:staticvoidMain(string[]args){IConfigurationBuilderconfigurationBuilder=newConfigurationBuilder();configurationBuilder.AddJsonFile("appsettings.js... 继续阅读 >
202109-04 .net core静态中间件的使用 目录正文结正文我们使用静态文件调用:app.UseStaticFiles();那么这个默认会将我们根目录下的wwwroot作为静态目录。这个就比较值得注意的,可能刚开始学.netcore的小伙伴,会直接把脚本写在更目录script这样是访问不到的。当然了,你可以配置参数。可以给UseStaticFiles传递参数。不过建议不要这么干,因为这是一种默认的约定。在wwwroot下建立一个index.html,那么访问http://localhost/index.html<!DOCTYPEhtml><html><head>... 继续阅读 >
202109-04 .net core异常中间件的使用 目录正文结正文if(env.IsDevelopment()){app.UseDeveloperExceptionPage();}这样写入中间件哈,那么在env环境下就会去执行UseDeveloperExceptionPage。publicstaticIApplicationBuilderUseDeveloperExceptionPage(thisIApplicationBuilderapp){if(app==null){thrownewArgumentNullException(nameof(app));}returnapp.UseMiddleware<DeveloperExceptionPageMiddleware>();}那么我们应该去看DeveloperExceptionPa... 继续阅读 >