波斯马BOSSMA Information Technology

ASP.NET 下的日志

使用gRPCui测试gRPC服务

发布时间:2022年2月15日 / 分类:ASP.NET / 抢沙发

gRPCui类似Swagger UI,可以用来测试gRPC服务,使用起来特别简单。 其原理是自动发现gRPC服务协议(当然前提是gRPC服务暴露了Protobuf协议),然后启动一个带界面的Web程序,用户可以在网页中选择调用的接口、填写参数,然后通过gRPCui发起gRPC请求,最终把执行结果展示出...

ASP.NET Core中使用漏桶算法限流

发布时间:2021年12月11日 / 分类:ASP.NET, DOTNET / 抢沙发

漏桶算法是限流的四大主流算法之一,其应用场景各种资料中介绍的不多,一般都是说应用在网络流量控制中。这里举两个例子: 1、目前家庭上网都会限制一个固定的带宽,比如100M、200M等,一栋楼有很多的用户,那么运营商怎么保证某些用户没有使用过多的带宽,从而影响到别人...

ASP.NET Core中使用滑动窗口限流

发布时间:2021年12月10日 / 分类:ASP.NET, DOTNET / 抢沙发

滑动窗口算法用于应对请求在时间周期中分布不均匀的情况,能够更精确的应对流量变化,比较著名的应用场景就是TCP协议的流量控制,不过今天要说的是服务限流场景中的应用。 算法原理 这里假设业务需要每秒钟限流100次,先来看固定窗口算法的两个问题: 漏检 如下图...

ASP.NET Core中使用固定窗口限流

发布时间:2021年12月10日 / 分类:ASP.NET, DOTNET / 抢沙发

算法原理 固定窗口算法又称计数器算法,是一种简单的限流算法。在单位时间内设定一个阈值和一个计数值,每收到一个请求则计数值加一,如果计数值超过阈值则触发限流,如果达不到则请求正常处理,进入下一个单位时间后,计数值清零,重新累计。 如上图所示,时间单位...

.NET6运行时动态更新限流阈值

发布时间:2021年11月16日 / 分类:ASP.NET, DOTNET / 抢沙发

自FireflySoft.RateLimit发布以来,帮助了不少需要在.net中进行限流处理的用户。前段时间有个开发者发了一个pull request,大意是Redis重启的时候Lua script会丢失,但是程序中还认为它存在,所以就会一直抛出异常,那位同学通过捕捉一个特定异常再reload Lua script的方式解...

ASP.NET Core中使用令牌桶限流

发布时间:2021年4月14日 / 分类:ASP.NET, DOTNET / 抢沙发

在限流时一般会限制每秒或每分钟的请求数,简单点一般会采用计数器算法,这种算法实现相对简单,也很高效,但是无法应对瞬时的突发流量。 比如限流每秒100次请求,绝大多数的时间里都不会超过这个数,但是偶尔某一秒钟会达到120次请求,接着很快又会恢复正常,假设这种突发...

IIS反向代理Redirect 302 时404的问题

发布时间:2018年7月18日 / 分类:ASP.NET, ASP.NET MVC, SERVER / 抢沙发

当程序中使用Redirect跳转时,实际上是通过Http Header中的Location给浏览器传递一个跳转的Url。 使用IIS做反向代理的情况下,由于程序默认不会自动感知反向代理的存在,所以Location中的Url是相对程序本身的,浏览器拿到这个Url进行跳转时,不能通过反向代理的站点进行访问。 ...

使用启动命令参数设置Kestrel的监听端口

发布时间:2018年2月25日 / 分类:ASP.NET, DOTNET / 抢沙发

Kestrel的默认端口是5000,如果要启动多个站点,就得区分端口了,指定端口有多种方式:编写代码、appsettings.json配置、启动命令参数等。这里将介绍使用启动命令参数的方式。 还是以guid.fireflysoft.net为例,语法为: /usr/bin/dotnet /home/wwwroot/guid.fireflysoft.net/G...

在CentOS7中部署ASP.NET Core Web应用

发布时间:2018年2月25日 / 分类:ASP.NET, DOTNET / 抢沙发

.NET Core发展速度很快,特别是2.0发布后,越来越多的项目开始使用。网上关于ASP.NET Core的文章也已经很多了,但是因为版本升级较快,有些已经过时。这篇文章将基于当前最新的.NET Core 2.0.5运行时,说明在CentOS中部署的详细过程。 要部署的是一个Web应用,提供生成Guid的服...

使用jQuery blockUI插件为UpdatePanel提升用户体验

发布时间:2014年10月30日 / 分类:ASP.NET / 抢沙发

ASP.NET Webform开发模式中提供了一套对AJAX支持的控件,通过将要异步更新的内容放到UpdatePanel中,还是采用CodeBehind的开发模式,不需要编写额外的Javascript,即可以轻松的实现AJAX效果。当然如果想有些绚丽好看的动画效果,让异步更新不显得那么突兀,让用户等待时心里更...