自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

主宰

天地不仁以万物为刍狗,圣人不仁以百姓为刍狗

  • 博客(426)
  • 资源 (12)
  • 收藏
  • 关注

原创 ASP.NET Core WebAPI 返回结果统一包装实践

上面我们也说了关于定义泛型类的优势,这里就话不多说来直接封装一个结果返回的包装类/// 状态结果set;_msg;/// 消息描述Messageget// 如果没有自定义的结果描述,则可以获取当前状态的描述return!set/// 返回结果set;其中这里的是一个枚举类型,用于定义具体的返回状态码,用于判断返回的结果是正常还是异常或者其他,我这里只是简单的定义了一个最简单的示例,有需要的话也可以自行扩展[Description("请求成功")]

2024-03-29 12:01:56 708

原创 揭秘:一行代码搞定.Net API高并发的烦恼

在追求高效的同时,我们更希望能让开发者从重复的工作中解放出来,将更多的精力投入到创新和业务的核心中去。今天,我带来了一种简洁高效的方案。的特性就可以啦,我再这里对中间件提供了2个参数,分别是锁定的最大时间和锁定后的错误提示。这个方法用于获取请求的EndPoint来判断是否包含ApiLock的特性​​​​​​​。我们可以看到,当我们连续点击2次测试接口时,我们发现第二次调用就会返回被锁定了。

2024-02-19 11:06:49 230

原创 C# 如何实现一个事件总线

EventBus(事件总线)是一种用于在应用程序内部或跨应用程序组件之间进行事件通信的机制。它允许不同的组件通过发布和订阅事件来进行解耦和通信。在给定的代码片段中,我们可以看到一个使用C#实现的Event Bus。它定义了一些接口和类来实现事件的发布和订阅。IEvent和。IEvent是一个空接口,用于约束事件的类型。是一个泛型接口,用于约束事件处理程序的类型。它定义了处理事件的异步方法HandleAsync和处理异常的方法HandleException。

2024-02-17 11:49:36 1066 1

原创 ASP.NET Core 启用CORS

W3C提供了标准来放宽同源策略,允许实现跨源资源共享(CORS),如果https://bar.other实现CORS https://foo.example/A.html能够ajax请求并读取B.html。通常,这个值为*,这意味着服务器共享请求资源针对互联网上的每个域名,有时候,这个header的值将被设置为特定域名(或者域名列表),这意味着服务将共享资源仅仅针对特定域名(域列表)。现在页面A.html有一个ajax代码尝试读取B.html的HTML的源代码,B页面位于。

2023-11-23 08:58:05 657

原创 .NetCore手写一个 API 限流组件

接下来我们就要来实现 IRateLimiting 这个接口需要做的内容了,为了保持足够的扩展性,我们使用 abstract 来声明抽象类,比如说我实现了一套 IRateLimiting 通用的逻辑,你想要在我的基础之上进行修改符合自己业务的逻辑,就可以基础我的 abstract 类来进行扩展。上面定义的这个对象,只是一些简约的处理限流的行为,在我们面对复杂多变的业务场景时,IRateLimiting 不一定能够满足我们,在面对持续变化的业务,我们最好不要直接在这个对象里进行更改,而是新增加一个新的对象。

2023-11-16 09:50:57 493

原创 .NET Core 中插件式开发实现

虽然微软文档说.NET Core中使用AssemblyLoadContext来实现程序集的加载及卸载实现,但通过验证在加载引用外部dll后,加载后不能正常卸载。或者使用方式还不正确。

2023-11-03 10:20:44 852

原创 ImageSharp.Web实战:轻松搭建高效图片服务

很多情况下,在开发如PC、H5、小程序等综合平台的时候,图片的展示是个比较头疼的问题。尤其是有会员功能,会员可以上传图片的平台,更是一件麻烦事。平台展示图片的地方,尺寸是定义好的。但用户不配合,上传的图片不能符合要求的话,就会出现拉伸和挤压的问题。非常影响浏览效果。而且现在的图片动辄几MB,十几MB的都有。按原图展示的话,那就太恐怖了!例如如下案例:在列表页,是趋向于正方形的但是在详情页,就是长方形的了。我们可以使用CSS的object-fit。

2023-09-04 14:38:55 499

原创 C#/.NET/.NET Core优秀项目和框架每周精选开篇

注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享。每周精选优秀的C#/.NET/.NET Core项目和框架,帮助开发者发现功能强大、性能优越、创新前沿、简单易用的项目和框架。无论你是寻找灵感、学习新技术、改进代码质量,还是想拓展自己的技术视野,每周精选都会为你提供有价值的参考和指导。关注每周精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发效率和质量。

2023-08-11 08:33:40 212

原创 Linux系统的Centos7扩容主分区

(注意扩展的内存大小,如果报错,说明没有这么大的空间可以扩展,需要减少增加空间,如改成:lvresize -L + 9.9G /dev/mapper/centos-root)12.输入lvextend -l +100%free /dev/mapper/centos-root 将空闲可分配的空间100%全部给/dev/mappercentos-root, -l,小写l是分配百分比的,大写L是分配具体值的,分配成功后我们可以看到不一样的变化。4.运行fdisk /dev/sda ,我们可以输入m以获取帮助。

2023-08-10 17:07:06 544

原创 ASP.NET Core 使用Filter和Redis实现接口防重

背景日常开发中,经常需要对一些响应不是很快的关键业务接口增加防重功能,即短时间内收到的多个相同的请求,只处理一个,其余不处理,避免产生脏数据。这和幂等性(idempotency)稍微有点区别,幂等性要求的是对重复请求有相同的和,通常需要在接口内部执行业务操作前检查状态;而防重可以认为是一个业务无关的通用功能,在ASP.NET Core中我们可以借助过Filter和redis实现。关于Filter。

2023-05-23 09:26:10 458 1

原创 mysql数据库在windows服务器下安装

mysql的安装,将下面的内容复制到my.ini中(将mysql的安装目录,mysql数据库的数据的存放目录改成你的下载路径和存放路径)max_connections=200 # 允许连接失败的次数。安装MySQL服务,输入 mysqld --install [服务名](服务名可以不加默认为mysql)初始化MySQL,输入mysqld --initialize --console,记录初始化密码。

2023-05-10 14:54:29 1044

原创 .Net 6.0 部署Linux+Nginx +PM2教程

因为工作最近接手的项目是部署到Linux中,需要使用到Linux , Nginx和PM2 的一些操作,我就开始倒腾了一两天试试能不能把自己的项目也整一套放到Linux中,Linux 在日常工作中可以说是非常普遍,也是主流,看一百遍不如做一遍,所以希望还没有接触到的童鞋,看完这篇文章后也能去试着部署一下,一起进步!,这个的if的意思是只有开发环境才会执行,如没有拿出来,即便发布成功也无法访问Swagger UI,本人就被这个小问题折磨了有一上午!好了,我们终于到了最后一步了!

2023-04-20 08:49:17 1313

原创 如何训练个人的ChatGpt4

如何在自己的计算机上安装类似 ChatGPT 的个人 AI 并在没有互联网的情况下运行它这是个人AI的“第一台PC”时刻,随之而来的是限制,就像在车库里生产第一台Apple 1一样。你是先驱。今天,任何人都可以使用私人和个人AI。您可以在自己的计算机上运行类似 ChatGPT 的功能版本,并且在安装后不需要将其连接到互联网。所有人类知识都是已知和未知的综合。人工智能用作正力多路复用器和您的智力放大器,您的个人人工智能很好地帮助您和我们所有人克服这一差距。

2023-04-17 09:55:23 6686 5

原创 推荐130个网站,非常实用,比涨工资都重要

130个学习资源网站,非常实用

2023-02-18 08:47:08 460

原创 .Net Core对于RabbitMQ封装分布式事件总线

RabbitMQ是一种开源的消息代理和队列管理系统,用于在分布式系统中进行异步通信。它的主要功能是接收和分发消息,并且支持多种协议,包括AMQP,STOMP,MQTT等。

2023-02-13 08:56:53 821

原创 .NET Core统一参数校验、异常处理、结果返回功能实现

我们开发接口时,一般都会涉及到参数校验、异常处理、封装结果返回等处理。如果每个后端开发在参数校验、异常处理等都是各写各的,没有统一处理的话,代码就不优雅,也不容易维护。所以,我们需要统一校验参数,统一异常处理、统一结果返回,让代码更加规范、可读性更强、更容易维护。比如我们需要入参为必填,只需要在实体类字段添加 [Required]统一标准的返回格式。一般一个标准的响应报文对象。在控制器返回的时候,进行返回包装。遇到未处理的异常进行统一的封装。定义一个统一的返回对象模板。data:返回的数据。

2022-11-23 17:23:34 1302

原创 Vol版Vue.NetCore开源项目

Vue + .NetCore前后端分离,不一样的快速发开框架(提供Vue2/Vue3版本)

2022-10-28 16:24:25 1253

原创 收集.NET6中一些常用组件的配置

在根目录下新建一个 cs文件,比如Globalusing.cs,在里面添加你的全局引用,和常规引用不同的是,在using前面添加 global有时候我们不想把配置全部放在 appsettings.json ,我们想自己建立一个文件夹来存储其他配置文件,比如config/...json之类的,咋整呢,我们新建个文件夹 config,下面建立一个配置文件app.json,里面存几个配置以便验证。使用前添加如下代码即可。

2022-10-06 09:10:42 1315

原创 ElasticSearch入门 第二篇:Elasticsearch安装与使用IK中文分词器

简介IKAnalyzer 是一个开源的,基于 Java 语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer 已经推出了3个大版本。最初,它是以开源项目 Luence 为应用主体的,结合词典分词和文法分析算法的中文分词组件。最近刚刚发布了 3.1.1Stable 稳定版本,新版本的 IKAnalyzer 则发展为面向 Java 的公用分词组件,独立于 Lucene 项目,同时提供了对 Lucene 的默认优化实现。2、安装IK中文分词器。

2022-09-20 09:41:35 373

原创 ElasticSearch入门 第一篇:Elasticsearch在Windows系统下的安装

Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 语言开发的,并作为 Apache 许可条款下的开放源码发布,是一种流行的企业级搜索引擎。在使用 Elasticsearch 之前,我们需要安装 Elasticsearch。下面介绍 Elasticsearch 在 Windows 系统下的安装方法。

2022-09-19 16:00:25 577 1

原创 .NET 6.0中使用Identity框架实现JWT身份认证与授权

我们将使用微软 框架来存储用户和角色信息。(身份认证)是验证用户凭据的过程,而(授权)是检查用户访问应用程序中特定模块的权限的过程。在本文中,我们将了解如何通过实现 JWT 身份认证来保护 应用程序。我们还将了解如何在 中使用授权来提供对应用程序各种功能的访问。我们将用户凭据存储在 SQL Server 数据库中(注:您可以使用MySQL、PostgreSQL等其他关系型数据库),我们将使用 EF Core 框架和 Identity 框架进行数据库操作。 是一个开放标准 (RFC 7519),它定义了

2022-07-27 10:19:09 1344

原创 DELL R740 Raid10与U盘启动项的配置

一、制作服务器磁盘阵列Raid101、按F2进入BIOS 2、选择Device Settings3、选择Configuration Management(配置管理) 4、选择Create Virtual Disk5、选择队列的方式,选择硬盘,这里以Raid10为例6、队列的硬盘选择 7、快捷选择所有硬盘并且确认8、确认操作 9、再次确认操作 10、虚拟硬盘选择配置完成,配置被始化工作11、之后,确认,再次确认这里不再介绍12、硬盘队列Raid10创建成功二、配置...

2022-07-06 16:09:58 8036 2

原创 从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程

从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程!

2022-07-06 14:33:51 1499 2

原创 Windows Server2016+SqlServer2016搭建AlwaysOn集群(三)

​AlwaysOn 可用性组概述 (SQL Server),经过前两篇文章的铺垫后,现在正式开始搭建AlwaysOn。

2022-07-06 14:32:23 1011

原创 Windows Server2016+SqlServer2016搭建AlwaysOn集群(二)

集群规划节点加域重启并用本地管理员账户重新登陆后,开始安装故障转移集群功能(WSFC),并创建故障转移集群。

2022-07-06 14:30:33 1559

原创 Windows Server2016+SqlServer2016搭建AlwaysOn集群(一)

AlwaysOn是SqlServer实现高可用的解决方案之一,需要部署在Windows故障转移集群(WSFC)上,Windows集群中每个节点上开启了AlwaysOn的SQLServer应用组成了SQLServer集群!

2022-07-06 14:28:52 3101

原创 在IIS服务器上部署SSL证书(基于阿里云平台)

在WinServer服务器上IIS部署https加密证书的步骤

2022-06-14 19:23:45 1882 1

原创 IIS实现全站HTTPS自动替换HTTP

IIS上搭建的网站,配上SSL证书后,希望自动将80端口转到443端口,可以按如下操作:1、购买SSL证书(我用的阿里云的免费证书),然后IIS设置好SSL。2、如果IIS没有URL重写模块,则需要下载安装URL重写模块:Microsoft URL Rewrite Module3、取消勾选“SSL设置”-》“要求 SSL” 4、URL重写规则:ASP.NET站可直接修改web.config,和界面操作结果一致......

2022-06-14 19:12:03 1640

原创 一文帮你彻底掌握Nginx

第一章:Nginx概述1.1、Nginx概述Nginx(“engine x”)是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用Nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。1.2、Nginx官网官网地址:http://nginx.org/1.3、Nginx用处Nginx可以作为静态页面的Web服务器,同时还支持CGI协议的动态语言,比如Perl、P

2022-05-07 11:53:01 552 1

原创 如何在ASP.Net Core的生产环境中保护swagger ui

当您使用 dotnet 5 创建 WebApi 项目时,项目中会默认集成 swagger。如下所示。正如您在上面图片中看到的那样,开发人员仅在开发环境中很好地添加了swagger。所以你只能在开发模式下看到swagger页面。但是,如果您想在生产环境中访问 swagger 页面,但同时又希望不是每个人都应该能够看到您的 api 端点,该怎么办呢?在本教程中,我将阐述如何使用一些身份验证机制来保护生产环境中的 swagger 定义。在下面的实例中,我将使用基本身份验证,所以让我..

2022-03-30 09:07:25 1352

原创 sql server 2016不能全部用到CPU的逻辑核心数的问题

最近在工作中遇到了,sql server 2016 不能把CPU 的核心全部用到的问题.通过分析工具看到总共CPU核心有72核,但sql只能用到40核心,想信也有很多人遇到这问题,那么今天这节就先说说这问题是怎么出现的。首先 介绍下服务器的环境Windows 2008 R2EnterpriseEdition(X64) + MicrosoftSQLServer2012(SP1)EnterpriseEdition(64-bit)CPU 2路 18核 开启超线程后是72核...

2022-02-16 18:48:23 2189 1

原创 visual studio设置为使用IIS运行网站时加载项目遇到权限问题的解决方法

visual studio(vs) 开发网站项目时,默认是使用vs内置的一个简易型的IIS服务程序来运行网站项目。但有些时候这并不是很方便,例如我需要在移动端访问我的测试网站,不能直接访问带端口号的地址,而vs 内置的IIS却只能启动带端口的网站。这时,我需要把网站部署到本机的IIS上,然后移动端就可以直接使用我的局域网IP 访问我的测试网站。但是项目文件在vs中的每次更改都要发布到本机的IIS,这未免就太麻烦了。幸运的是vs其实是可以设置成调用本机的IIS来启动网站程序的,而且可以像它内置的IIS

2022-02-16 17:57:23 689

原创 Nginx从安装到高可用实战

一、Nginx安装1、去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本2、上传nginx到linux系统3、安装依赖环境(1)安装gcc环境yuminstallgcc-c++(2)安装PCRE库,用于解析正则表达式yuminstall-ypcrepcre-devel(3)zlib压缩和解压缩依赖yuminstall-yzlibzlib-devel(4)SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是ht...

2021-12-31 14:07:39 219

原创 Nginx从安装到高可用

一、Nginx安装1、去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本2、上传nginx到linux系统3、安装依赖环境(1)安装gcc环境yum install gcc-c++1(2)安装PCRE库,用于解析正则表达式yum install -y pcre pcre-devel1(3)zlib压缩和解压缩依赖yum install -y zlib zlib-devel1(4)SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是https

2021-12-31 08:54:50 115

原创 DTcms Core项目发布到IIS教程

1、下载环境最好本地vs发布环境和服务器上的core环境相一致,core 3和 .Net 5同样操作。vs 发布环境安装 SDK3.1.2。IIS服务器上安装 core Runtime 3.1.2和Hosting Bundle 3.1.2 这2个安装包。(注意,如果iis服务器环境安装了以前版本的core,比如说3.0,发布后可能会有500错误。本人发布遇到这个问题,删除旧版本统一新版本解决。)core 3.1下载地址https://dotnet.microsoft.com/download/do.

2021-12-02 20:32:11 580 1

原创 .net core 中如何有效屏蔽重复提交

一.咨询区Guilherme Ferreira:我通过 post 方式向我的一个webapi中提交数据,然后插入到数据库中,在 ui端,当用户点击某一个 button 之后,代码会将 button 禁用,但因为某些原因,点击按钮的速度比禁用按钮的函数还要快,这就造成了post两次的情况,也就插入了两条同样的数据。在客户端我用 axios 来做 post 提交,请问我如何在 server 端规避这种事情?二.回答区 Christian Gollhardt: 前段时间刚好遇到了这个场景

2021-10-20 08:34:54 1802

原创 AddMvcCore,AddControllers,AddControllersWithViews,AddRazorPages的区别

1.services.AddMvcCore()只注册运行Controller/Razor Pages 必要的核心服務,确保Pipeline 程序可运行,其余如像 Data Annotation Model Validation、身分验证等服务要自己加挂,除有特殊客户需求,一般不太常用。2.services.AddControllers()包含 AddMvcCore() 所做的动作外,再加上:身份验证服务Swagger/Open API 等 API 文件动态产生功能Data ...

2021-10-15 11:29:15 458

原创 SQL Server表分区

一、什么是表分区一般情况下,我们建立数据库表时,表数据都存放在一个文件里。但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的磁盘下由多个cpu进行处理。这样文件的大小随着拆分而减小,还得到硬件系统的加强,自然对我们操作数据是大大有利的。所以大数据量的数据表,对分区的需要还是必要的,因为它可以提高select效率,还可以对历史数据经行区分存档等。但是数据量少的数据就不要凑这个热闹啦,因为表分区会对数据库产生不必要的开

2021-10-14 09:34:15 2364

原创 SqlServer的with(nolock)的用法

本文导读:要提升SQL的查询效能,一般来说大家会以建立索引(index)为第一考虑。其实除了index的建立之外,当我们在下SQL Command时,在语法中加一段WITH (NOLOCK)可以改善在线大量查询的环境中数据集被LOCK的现象藉此改善查询的效能。不过有一点千万要注意的就是,WITH (NOLOCK)的SQLSELECT有可能会造成Dirty Read。with(nolock)的介绍大家在写查询时,为了性能,往往会在表后面加一个nolock,或者是with(nolock),其目的就.

2021-10-14 08:57:37 3369

原创 ASP.NETCore数值型Id加密成无意义的字符串

一般来说,我们推荐使用整数Id作为数据表的主键,这样可以提供不少好处:存储空间小,简洁易懂,方便分页、排序、索引。但当这种Id暴露到外部时,比如订单号,就存在一定的风险了。因为不管是自增、雪花算法(SnowFlake)或者自定义算法,生成的Id都是存在一定规律可循,容易被爬虫生成Id用于爬站,甚至泄露数据。要想避免这种风险,比较简单的方案是将Id加密成无意义的字符串,但是通过这些字符串又可以反向映射出真实的Id以供内部使用。比如B站的播放链接https://www.bilibili.com/vi

2021-10-09 08:13:33 300

SQLServer搭建有域高可用Alwayson集群

SQLServer搭建有域高可用Alwayson集群,有详细的搭建教程和视频讲解,根据文档就能搭建出SQLServer搭建有域高可用Alwayson集群

2022-07-06

NineSky实战ASP.NET MVC源码

NineSky源码这个ASP.NET MVC项目学习的源码,学习的网址是https://blog.csdn.net/u011966339/article/details/88841041

2019-03-27

SQLServer进阶学习

在SqlServer基础学习后的一个高级进阶学习;让你成为SQl大师级

2018-06-29

C#设计模式源码

C#讲解设计模式,富含源代码实现过程,和博客中讲解的设计模式相配套

2018-03-05

相关性算法BM25

BM25算法BM25算法BM25算法BM25算法BM25算法BM25算法BM25算法BM25算法BM25算法BM25算法BM25算法BM25算法BM25算法BM25算法

2017-09-21

50个常用的SQL语句

50个常用的SQL语句,你学会这50条SQL语句,就证明你学会了搜索的SQL语句;50个常用的SQL语句,你学会这50条SQL语句,就证明你学会了搜索的SQL语句

2017-09-21

VisualSVN-4.0.9.msi

vs2010,vs2012重装后SVN在项目中不显示时用这个工具

2017-06-22

DELL服务器主机增加RAID磁盘阵列的步骤

DELL服务器主机增加RAID磁盘阵列的步骤;这个方法我已经试过了

2017-05-25

五子棋游戏程序源码

2017-04-04

ASp.net知识点集锦

最全的ASP.NET的知识点集锦,囊括了各种知识

2015-10-16

抽象工厂模式设计的实现代码C++语言

抽象工厂模式的实现源代码,清晰易懂,还有详细的说明

2014-05-22

2410-S快速开始手册.pdf

2410-S快速开始手册讲述了2410开发板是如何使用的,对于初学者是相当的有用

2014-05-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除