当前位置: 首页 > news >正文

企业网站建设的趋势羽毛球赛事有哪些

企业网站建设的趋势,羽毛球赛事有哪些,wordpress 淘客api,花钱做网站不给源码众所周知,当我们使用IIS的时候,在使用负载均衡的情况下,想停掉一个站点,通常会点击Sites(网站)中的Stop(停止)来停止一个站点。但是这样做,会带来一个问题,当…
众所周知,当我们使用IIS的时候,在使用负载均衡的情况下,想停掉一个站点,通常会点击Sites(网站)中的Stop(停止)来停止一个站点。但是这样做,会带来一个问题,当点击Stop(停止)时,正在响应中的请求会立刻被切断,使客户端无法收到响应,后续也无法连接该站点,在某些业务场景中,比如涉及金额交易业务,在没有使用幂等,锁等手段的情况下,强行切断的请求后,客户端不知道该交易的交易情况,如果再次请求(因为本站点已停止,负载均衡会指向其他机器)会造成重复交易,如果不请求,客户端也不能确切的知道该交易已经成功。类似微服务中,服务间请求超时的情况。熟悉IIS的读者通常不会直接停止站点,而会选择点击Application Pools(应用程序池)中的Stop(停止)来停止一个站点,应用程序池在被停止后,新的请求会被响应503,负载均衡识别到503后,会把该请求负载到其他机器上,以保证业务不会中断。同样的问题,当点击Stop(停止)停止时,正在响应的请求,会发生什么情况呢。有经验的开发/运维会回答,在Application Pools(应用程序池)里Advanced Settings(高级设置)中Process Model(进程模型)组包含一个Shutdown Time Limit(关闭时间限制)选项,默认值为90s。这就意味着当应用程序池停止、回收时,IIS会最多等待没响应的请求90s,如果90s内,所有的请求响应完毕,应用程序池就会被停止、回收。那么如何判断IIS在这90s内未响应请求是否全部被响应呢,如果部署的程序是ASP.NET Core,可以在Event Viewer(事件查看器)/Windows Logs(Windows 日志)/Application(应用程序)里查看事件日志,如果出现Failed to gracefully shutdown application 'MACHINE/WEBROOT/APPHOST/xxx'.这个警告,则表明存在请求没有被响应,被IIS强行关闭的情况。事与愿违,在实际生产实践中,读者会发现IIS并没有"等待"90s,就会关掉连接,而客户端还在傻傻等待90s后才会显示无响应,造成正在请求的HTTP无法响应。通过阅读[官方文档](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/host/generic-host?view=aspnetcore-8.0#ihostapplicationlifetime ".NET Generic Host in ASP.NET Core")我们得知,等ASP.NET Core收到关闭信号时,对于正在处理的HTTP请求,会等待5s,5s之后会像IIS那样关闭连接。所以我们需要设置HostOptions
var builder = WebApplication.CreateBuilder(args);......builder.Services.Configure<HostOptions>(options =>
{//If the timeout period expires before all of the hosted services stop, any remaining active services are stopped when the app shuts down. The services stop even if they haven't finished processing. If services require more time to stop, increase the timeout.//Default: 5 secondsoptions.ShutdownTimeout = TimeSpan.FromSeconds(30);
});......
按照文档修改程序后,实际测试发现,设置.NET Generic Host的ShutdownTimeout"似乎"不生效, 在改动前由于IIS的Shutdown Time Limit默认是90s ,ASP.NET Core中ShutdownTimeout默认值是5s,所以在改动前IIS站点会最多等待正在请求的HTTP 5s 在改动后,笔者把.NET Generic Host的ShutdownTimeout调整至30s后,实测下来发现点击停止应用程序池后,竟然只能等正在请求中的HTTP 10s! 于是再次搜索资料,终于发现还有一个参数需要设置-> https://stackoverflow.com/questions/51634638/graceful-shutdown-of-ihostedservice  和官方文档[地址](https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/aspnet-core-module?view=aspnetcore-3.1#attributes-of-the-aspnetcore-element "ASP.NET Core Module (ANCM) for IIS") 在最近的文档(.NET 8)里竟然把Attributes of the aspNetCore element这一节删掉(移走)了,导致查阅最新文档,根部搜索不到所需信息,接下来按照文档操作就十分简单了,加上shutdownTimeLimit属性,修改web.config如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration><location path="." inheritInChildApplications="false"><system.webServer><handlers><add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2"resourceType="Unspecified" /></handlers><aspNetCore shutdownTimeLimit="30" processPath="dotnet" arguments=".\WebApplicationTest.dll" stdoutLogEnabled="true"stdoutLogFile=".\logs\stdout" hostingModel="inprocess" /></system.webServer></location>
</configuration>
修改后,再次实测,即符合预期,在使用ASP.NET Core的情况下关于shutdownTime总结(省流)如下:

IIS应用程序池shutdownTime默认值为90s

AspNetCoreModuleV2shutdownTime默认值为10s

.NET Generic Host(应用程序)默认值为5s

如要修改shutdownTime则需同时关注以上三处设置。祝您使用愉快!

声明

本文采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可,发表在CSDN和博客园,欢迎读者转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接!请读者/爬虫们尊重版权

http://www.sczhlp.com/news/112728/

相关文章:

  • 厦门电信网站备案哪里有好网站设计
  • 三位数的域名网站网络广告策划的原则
  • 网站的页脚什么做成都网络公司报价
  • 3dma渲染噪点成因排查及优化方案 - 详解
  • hadoop配置日志聚集
  • vxe-tree-select 树形下拉框当使用懒加载数据时如何回显
  • 海外高延迟服务器做网站最低价做网站
  • 阿里云 做网站 百度开放云做网站 新域名 还是
  • 在厦门做网站找谁wordpress能做外贸
  • 兼职做网站安全么青岛即墨网站建设
  • 广州网站关键排名python在线观看
  • GPT PMBR 大小不符解决方法
  • CodeFormer一款既能图像修复、还能视频增强去码的AI软件(下载介绍)
  • 网站页面设计知识做网站文案用哪个软件
  • 长沙网站建设工作室安陆网站的建设
  • 企业网站设计话术263企业邮箱登录登录入口
  • 深圳积分商城网站制作网络渠道有哪些
  • 西安网站seo厂家ajax网站开发典型实例
  • 网站开发所需要注意的问题网站运营与管理规划书
  • 中企动力科技股份有限公司做网站大兴网站建设价格
  • 内蒙古建设工程交易服务中心网站鞍山企业做网站
  • 装修公司网站制作图片怎么做
  • 永久免费网站服务器广州平面设计
  • 美食网站开发意义做淘客网站需要什么
  • PCB的导线电阻阻抗批量自动计算EXCEL表格工具 公式
  • 淘宝网站制作教程网站seo策略
  • 火车头 采集 wordpresswordpress标题优化
  • 湖南企业网站制作公司如何选择最好的域名
  • 南山网站多少钱品牌建设是指什么的行为过程
  • 有口碑的南昌网站制作cf辅助如何做代理拿网站