
.NET Core
文章平均质量分 79
Archy_Wang
有些代码不应该被忘记,也没有源代码不应该被记住。
展开
-
金蝶ERP星空对接流程
右键项目选择“管理NuGet程序包”,搜索并安装Microsoft.Extensions.Configuration、Microsoft.Extensions.Configuration.FileExtensions、Microsoft.Extensions.Configuration.Json、Newtonsoft.Json。同时,appsetting.json文件的属性“复制到输出目录”的值应为:如果较新则复制。右键项目添加引用,在打开的引用管理器中选择浏览页签,点击浏览按钮,找到从官网上下载的。原创 2025-03-03 16:36:27 · 830 阅读 · 0 评论 -
MediatR: .NET 平台上的命令查询职责分离 (CQRS) 库
可以根据需要扩展 MediatR 实现。原创 2025-02-22 08:52:40 · 516 阅读 · 0 评论 -
ASP.NET Core 中基于 Cookie 的身份鉴权实现
通过以上步骤,可以在ASP.NETCore应用中实现基于Cookie的身份鉴权,确保你的应用能够安全地验证用户身份并授权访问特定资源。Cookie的持久性和易于管理的特性使其成为传统Web应用中身份验证的理想选择。原创 2025-01-18 14:11:08 · 699 阅读 · 0 评论 -
ASP.NET Core中 JWT 实现无感刷新Token
在Web应用开发中,用户登录状态的管理至关重要。为了避免用户频繁遇到登录过期的问题,我们可以通过实现JWT(JSONWebToken)刷新机制来提升用户体验。原创 2025-01-18 14:08:45 · 628 阅读 · 0 评论 -
ASP.NET Core 中的 JWT 鉴权实现
通过以上操作,就可以在ASP.NETCore应用中实现JWT鉴权,确保你的应用能够安全地验证用户身份并授权访问特定资源。JWT的无状态特性和灵活性使其成为现代Web应用中身份验证的理想选择。原创 2025-01-18 14:06:04 · 1047 阅读 · 0 评论 -
Asp .Net Core 实现微服务:集成 Ocelot+Nacos+Swagger+Cors实现网关、服务注册、服务发现
Ocelot是一个开源的ASP.NET Core微服务网关,它提供了API网关所需的所有功能,如路由、认证、限流、监控等。Ocelot是一个简单、灵活且功能强大的API网关,它可以与现有的服务集成,并帮助您保护、监控和扩展您的微服务。路由管理:Ocelot允许您定义路由规则,将请求路由到正确的微服务。认证和授权:Ocelot支持多种认证机制,如JWT、OAuth等,并允许您定义访问控制策略,确保只有授权的用户才能访问特定的API。原创 2025-01-16 15:55:15 · 1510 阅读 · 0 评论 -
Asp .Net Core 实现微服务:集成 Ocelot+Consul+Swagger+Cors实现网关、服务注册、服务发现
Ocelot是一个开源的ASP.NET Core微服务网关,它提供了API网关所需的所有功能,如路由、认证、限流、监控等。Ocelot是一个简单、灵活且功能强大的API网关,它可以与现有的服务集成,并帮助您保护、监控和扩展您的微服务。路由管理:Ocelot允许您定义路由规则,将请求路由到正确的微服务。认证和授权:Ocelot支持多种认证机制,如JWT、OAuth等,并允许您定义访问控制策略,确保只有授权的用户才能访问特定的API。原创 2025-01-16 15:53:36 · 1345 阅读 · 0 评论 -
Asp .Net Core实现微服务:集成 CORS跨域配置
CORS,全称是“跨源资源共享”(Cross-Origin Resource Sharing),是一种Web应用程序的安全机制,用于控制不同源的资源之间的交互。在Web应用程序中,CORS定义了一种机制,通过该机制,浏览器能够限制哪些外部网页可以访问来自不同源的资源。源由协议、域名和端口组成。当一个网页请求另一个网页上的资源时,浏览器会检查请求是否符合CORS规范,以确定是否允许该请求。原创 2025-01-16 15:39:37 · 793 阅读 · 0 评论 -
Asp .Net Core实现微服务:使用 Nacos 实现配置管理和服务发现
【代码】Asp .Net Core实现微服务:使用 Nacos 实现配置管理和服务发现。原创 2025-01-16 15:22:29 · 587 阅读 · 0 评论 -
Asp .Net Core实现微服务:集成 Consul 实现 服务注册与健康检查
Consul 是一款开源的服务发现和配置管理工具,它能够监控应用程序和服务之间的通信,并提供了一组 API 和 Web UI,用于管理服务和配置。服务发现:Consul 通过 DNS 或者 HTTP 接口使服务注册和服务发现变得很容易,一些外部服务,例如 saas 提供的也可以一样注册。健康检查:健康检测使 Consul 可以快速的告警在集群中的操作。和服务发现的集成,可以防止服务转发到故障的服务上面。键/值存储:一个用来存储动态配置的系统。提供简单的 HTTP 接口,可以在任何地方操作。原创 2025-01-16 15:17:00 · 867 阅读 · 0 评论 -
ASP.NET Core WebApi接口IP限流实践技术指南
IP限流,简单来说,就是根据客户端的IP地址,对其发出的请求进行频率控制。如果某个IP地址在一段时间内发出的请求超过了设定的阈值,我们就认为它是恶意的,并对其进行限制,比如暂时封禁一段时间。创建限流中间件// 如果无法获取客户端IP,则直接放行return;if (!// 增加请求次数// 检查是否超过限制// 如果超过限制,则根据策略进行处理,比如返回429 Too Many Requests状态码return;// 设置缓存过期时间。原创 2025-01-16 10:27:13 · 707 阅读 · 0 评论 -
ASP.NET Core 中,认证(Authentication)和授权(Authorization)
在 ASP.NET Core 中,认证和授权是保障 Web 应用安全的关键部分。你可以根据应用的需求选择不同的认证和授权方式。例如,如果你有一个 API,你可能会选择使用 JWT 认证,而对于 Web 应用则可能会使用 Cookie 认证。而授权则可以通过角色、策略等多种方式进行。通过合理配置认证和授权,可以确保应用程序安全,并且按照最小权限原则来控制用户的访问。原创 2025-01-14 13:39:26 · 1540 阅读 · 0 评论 -
ASP.NET Core 中,Cookie 认证在集群环境下的应用
在 ASP.NET Core 集群环境中使用 Cookie 认证时,确保密钥的共享和一致性是非常关键的。可以通过RedisSQL Server或共享文件系统来持久化数据保护密钥,从而确保所有实例使用相同的密钥进行 Cookie 验证。同时,配置 Cookie 的Domain属性以便跨多个子域共享 Cookie,确保在负载均衡和集群环境中用户能够无缝地保持登录状态。原创 2025-01-11 08:42:08 · 890 阅读 · 0 评论 -
ASP.NET Core 中使用 Cookie 身份验证
在Program.cs中配置 Cookie 身份验证。使用来设置用户的身份验证 Cookie。使用处理用户登出。通过特性来保护需要授权的页面。原创 2025-01-10 17:38:21 · 591 阅读 · 0 评论 -
DTCMS.CORE8 的Web部署
打开DTcms.Web项目,双击打开一个项目的文件,让HBuilderX知道你要发布哪个项目。命令执行完毕后,在项目里面就多出了一个 .output 目录,要注意的是,要将 .output 目录上传到网站空间下,而不是 .output 目录里面的文件。DTcms.Web是Nuxt 3服务端渲染(SSR)项目,它包含前端和后端运行程序,所以相对于其它项目来说,是复杂点,但一切都是值得的。vc.alaibao.cn,那么上传后的目录是这样的,我们需要在网站的根目录下,创建一个。开机自启动(记得回车健)原创 2025-01-09 11:48:47 · 541 阅读 · 1 评论 -
ASP.NET Core 实现 微服务 - 分布式事务 - 可靠消息最终一致性
通过以上我们详细介绍了可靠消息最终一致性事务解决方案的总体结构跟执行的流程,以及对异常情况的一些补偿方法,总体流程上还是比较清晰简单的。但是可靠消息最终一致性方案在使用上也是具有比较强的局限性,因为它的异步特性跟有可能出现的高延时性不适合处理一些敏感业务。比如它适合处理消费新增积分场景,但是不合适处理积分兑换礼品的场景。因为如果积分扣减延迟了,那么用户就可能兑换超出本身积分多的多的礼品。所以我们选择分布式事务的时候还需根据场景来进行选择。原创 2025-01-09 11:32:32 · 1012 阅读 · 0 评论 -
ASP.NET CORE 实现微服务 - 分布式事务 - 2PC、3PC、TCC
2PC 既 Two-phase Commit ,中文翻译为二阶段提交。2PC 要求每个事务的参与方都把一个事务抽象成2个阶段。下面大概分析下 2PC 事务的流程。参与方分布式事务中所有需要同时进入事务的业务方。协调器分布式环境下为了对多个事务参与方进行统一的调度管理,我们需要一个调度器。以上简单介绍了 2PC、3PC 分布式事务的原理。我们可以看到 2PC 在理想情况下是可以保证数据一致性的。原创 2025-01-09 11:24:38 · 1157 阅读 · 0 评论 -
ASP.NET Core 实现微服务 -- Polly 服务降级熔断
通过以上文字我们大致了解了什么是服务降级、什么是熔断。并且通过 Polly 演示了如何处理这些情况。最后使用 lemon 大佬的 AspectCore 封装成一个 Attribute 来演示如何通过 AOP 的思想来简化 Polly 的使用。原创 2025-01-09 08:42:36 · 1047 阅读 · 0 评论 -
ASP.NET Core 实现微服务 - Consul 配置中心
以上我们演示了如何把服务的配置迁移到 Consul 的 Key/Value 对象上并且实现了配置的读取及热更新。演示了 Ocelot 网关的路由配置如何迁移到 Consul 的 Key/Value 对象上并且不再写死下游服务的配置信息,而是使用 Consul 的服务发现能力动态获取下游服务的配置信息。通过以上演示我们可以发现整个过程还是非常简单易用的,虽然 Consul 做为配置中心功能相对于 apollo 等功能还不够强大,比如没有版本管理,用户权限,审计等功能,但是对于一些小的微服务项目也已经足够了。原创 2025-01-08 17:51:45 · 1073 阅读 · 0 评论 -
ASP.NET Core 实现微服务 - Elastic APM
我们通过以上内容,介绍了什么是Elastic APM ,如何安装Elastic APM,如何在 ASP.NET Core 程序里集成 Elastic APM 的 sdk ,以及简单介绍了 Kibana 上的展示信息,特别是服务调用链的内容。可以看到Elastic APM 还是非常不错的一款 APM 组件,特别是对 ASP.NET Core 的集成做到了几乎零代码入侵,界面也非常友好。原创 2025-01-08 17:45:48 · 1158 阅读 · 0 评论 -
ASP.NET Core 实现微服务 -- Seq 日志聚合
通过以上内容,我们简单的演示了 Seq 日志聚合工具的安装、与.net core 进行集成,查询日志等功能。Seq 虽然比起 ELK 比较冷门,但是最近跟一些朋友交流下来,发现很多朋友都开始使用 Seq 来做为日志聚合工具了。原创 2025-01-08 17:26:34 · 660 阅读 · 0 评论 -
ASP.NET Core 实现微服务 -- 架构图
以上通过一张微服务架构图,大概讲解了微服务架构常用的分层方案,每一层的意义,为什么要这么分。介绍了常用的微服务组件的作用功能等等。至此我们对微服务架构应该有一个比较全面的了解。但是记住一句话,架构没有固定的模板没有定式,你可以根据自己的情况来划分层次,自己的情况来决定使用哪些组件。原创 2025-01-08 17:00:43 · 1007 阅读 · 0 评论 -
ASP.NET Core 实现微服务 -- Consul 注册中心
通过以上,我们回顾了服务注册发现的概念。演示了如何通过 docker/docker-compose 环境来部署 Consul 集群。还通过简单的 .NET Core 代码演示了如何注册服务信息到 Consul 集群,如何通过代码获取服务列表并调用它。相信现在大家对服务注册发现、Consul 组件有了一个比较直观的了解。原创 2025-01-08 17:17:45 · 1568 阅读 · 0 评论 -
ASP.NET Core 实现微服务 - Ocelot 网关
本次我们通过几个最简单的web api项目,演示了如何使用 ocelot 网关进行反向代理,限流,聚合等常用功能。可以看到 ocelot 的配置使用还是比较简单的。原创 2025-01-08 17:09:42 · 958 阅读 · 0 评论 -
ASP.NET Core实现微服务--什么是微服务
其实微服务并没有统一的标准定义。微服务是一种软件架构的风格。它首先由大神martin fowler提出,2014年3月25号在他的博客上发表了一篇博客来描述了这种微服务的架构。相对于传统的单体(Monolithic)架构应用,微服务把单个进程的应用拆分为多个单独部署的服务。每个服务对外提供一些接口来进行服务间的通讯或者对第三方提供功能。每个独立的服务甚至使用自己独立的存储技术,独立的语言技术栈。原创 2025-01-08 10:51:21 · 1317 阅读 · 0 评论 -
ASP.NET Core项目实战:短信功能与分布式限流
本文详细介绍了在ASP.NET Core项目中实现短信功能和分布式限流的过程。通过合理的架构设计和代码实现,我们可以有效地将这两个功能集成到项目中,提高系统的可用性和安全性。原创 2024-08-12 08:37:20 · 535 阅读 · 0 评论 -
探索亿级短URL生成器的架构设计
这样生成的的短 URL 必然唯一,通常采用自增序列号的方式进行生成。其中“+”和“/”在 URL 中会被编码为“%2B”以及“%2F”,需要进行再编码,因此直接使用标准 Base64 编码进行短URL 编码并不合适,所以,我们需要针对 URL 场景对 Base64 编码进行改造,Base64 编码表中的 62,63 进行编码移除,更新为Base62编码。预生成短URL是指提前生成一些短URL并保存到数据库中,当用户需要缩短长URL时,直接从数据库中获取一个未被使用过的短URL,而不是现场生成新的短URL。转载 2024-07-19 17:11:12 · 1115 阅读 · 0 评论 -
SQLSugar 基本语法+数据库读写分离
面向对象的操作数据库,相比EFCore、Dapper等其他ORM框架性能支持性能轻便快捷,数据库的读写分离能大大减轻数据库的压力原创 2024-07-06 15:26:05 · 2467 阅读 · 0 评论 -
.net core 的缓存方案
Redis也有多种,我使用过ServiceStack.Redis和StackExchange.Reids,这两个的区别也是很大的ServiceStack.Redis是商用的,不给钱每个小时的使用是有限的,好像是六千次,但是速度稍微比StackExchange.Reids快一点点,毕竟是收费的,但是StackExchange.Reids没有使用限制,所以这里主要讲一下StackExchange.Reids怎么用。写到需要使用缓存的项目的appsettings.json里面。原创 2024-06-29 09:38:41 · 825 阅读 · 0 评论 -
C# 如何实现一个事件总线
EventBus(事件总线)是一种用于在应用程序内部或跨应用程序组件之间进行事件通信的机制。它允许不同的组件通过发布和订阅事件来进行解耦和通信。在给定的代码片段中,我们可以看到一个使用C#实现的Event Bus。它定义了一些接口和类来实现事件的发布和订阅。IEvent和。IEvent是一个空接口,用于约束事件的类型。是一个泛型接口,用于约束事件处理程序的类型。它定义了处理事件的异步方法HandleAsync和处理异常的方法HandleException。原创 2024-02-17 11:49:36 · 1257 阅读 · 1 评论 -
揭秘:一行代码搞定.Net API高并发的烦恼
在追求高效的同时,我们更希望能让开发者从重复的工作中解放出来,将更多的精力投入到创新和业务的核心中去。今天,我带来了一种简洁高效的方案。的特性就可以啦,我再这里对中间件提供了2个参数,分别是锁定的最大时间和锁定后的错误提示。这个方法用于获取请求的EndPoint来判断是否包含ApiLock的特性。我们可以看到,当我们连续点击2次测试接口时,我们发现第二次调用就会返回被锁定了。原创 2024-02-19 11:06:49 · 1227 阅读 · 0 评论 -
.NetCore手写一个 API 限流组件
接下来我们就要来实现 IRateLimiting 这个接口需要做的内容了,为了保持足够的扩展性,我们使用 abstract 来声明抽象类,比如说我实现了一套 IRateLimiting 通用的逻辑,你想要在我的基础之上进行修改符合自己业务的逻辑,就可以基础我的 abstract 类来进行扩展。上面定义的这个对象,只是一些简约的处理限流的行为,在我们面对复杂多变的业务场景时,IRateLimiting 不一定能够满足我们,在面对持续变化的业务,我们最好不要直接在这个对象里进行更改,而是新增加一个新的对象。原创 2023-11-16 09:50:57 · 628 阅读 · 0 评论 -
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 · 828 阅读 · 0 评论 -
.NET Core 中插件式开发实现
虽然微软文档说.NET Core中使用AssemblyLoadContext来实现程序集的加载及卸载实现,但通过验证在加载引用外部dll后,加载后不能正常卸载。或者使用方式还不正确。原创 2023-11-03 10:20:44 · 1383 阅读 · 0 评论 -
C#/.NET/.NET Core优秀项目和框架每周精选开篇
注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享。每周精选优秀的C#/.NET/.NET Core项目和框架,帮助开发者发现功能强大、性能优越、创新前沿、简单易用的项目和框架。无论你是寻找灵感、学习新技术、改进代码质量,还是想拓展自己的技术视野,每周精选都会为你提供有价值的参考和指导。关注每周精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发效率和质量。原创 2023-08-11 08:33:40 · 331 阅读 · 0 评论 -
ASP.NET Core 使用Filter和Redis实现接口防重
背景日常开发中,经常需要对一些响应不是很快的关键业务接口增加防重功能,即短时间内收到的多个相同的请求,只处理一个,其余不处理,避免产生脏数据。这和幂等性(idempotency)稍微有点区别,幂等性要求的是对重复请求有相同的和,通常需要在接口内部执行业务操作前检查状态;而防重可以认为是一个业务无关的通用功能,在ASP.NET Core中我们可以借助过Filter和redis实现。关于Filter。原创 2023-05-23 09:26:10 · 517 阅读 · 1 评论 -
.Net 6.0 部署Linux+Nginx +PM2教程
因为工作最近接手的项目是部署到Linux中,需要使用到Linux , Nginx和PM2 的一些操作,我就开始倒腾了一两天试试能不能把自己的项目也整一套放到Linux中,Linux 在日常工作中可以说是非常普遍,也是主流,看一百遍不如做一遍,所以希望还没有接触到的童鞋,看完这篇文章后也能去试着部署一下,一起进步!,这个的if的意思是只有开发环境才会执行,如没有拿出来,即便发布成功也无法访问Swagger UI,本人就被这个小问题折磨了有一上午!好了,我们终于到了最后一步了!原创 2023-04-20 08:49:17 · 1624 阅读 · 0 评论 -
.Net Core对于RabbitMQ封装分布式事件总线
RabbitMQ是一种开源的消息代理和队列管理系统,用于在分布式系统中进行异步通信。它的主要功能是接收和分发消息,并且支持多种协议,包括AMQP,STOMP,MQTT等。原创 2023-02-13 08:56:53 · 1015 阅读 · 0 评论 -
.NET Core统一参数校验、异常处理、结果返回功能实现
我们开发接口时,一般都会涉及到参数校验、异常处理、封装结果返回等处理。如果每个后端开发在参数校验、异常处理等都是各写各的,没有统一处理的话,代码就不优雅,也不容易维护。所以,我们需要统一校验参数,统一异常处理、统一结果返回,让代码更加规范、可读性更强、更容易维护。比如我们需要入参为必填,只需要在实体类字段添加 [Required]统一标准的返回格式。一般一个标准的响应报文对象。在控制器返回的时候,进行返回包装。遇到未处理的异常进行统一的封装。定义一个统一的返回对象模板。data:返回的数据。原创 2022-11-23 17:23:34 · 1524 阅读 · 0 评论 -
Vol版Vue.NetCore开源项目
Vue + .NetCore前后端分离,不一样的快速发开框架(提供Vue2/Vue3版本)原创 2022-10-28 16:24:25 · 1480 阅读 · 0 评论