C# aspnetcore Webapi 解决发布以后每隔一段时间请求变缓慢
项目:netcore webapi 3.1
平台:windows server 2008 r2
服务器:IIS 7.5
项目发布到IIS以后第一次请求特别慢大概7.8秒,然后每隔5分钟请求一次大概2.3秒,下面讲解下我的解决旅程,如果心急的朋友直接看最后一步:
1、在IIS站点中设置HTTP响应头Cache-control,这个把当前请求页面缓存了,会出现2个账号登录显示的是相同页面,请求响应的时间并没有提高
2、在IIS应用程序池 高级设置中,CPU限制间隔由原来5分钟更改为0,闲置超时由原来20分钟更改为0,也就是不受限制,但依然会出现休眠状态速度还是一样慢
3、在命令行切换到 当前项目目录 使用netcore内置服务器Kestrel启动,问题依然没有解决
4、在接口中设置一个test参数直接返回OK,然后利用windows计划程序,每隔2分钟执行批处理文件 去请求唤醒它,问题还是存在
5、在iis7.5中安装 应用程序预热模块,下面是下载链接,2个组件都要安装,选择应用程序池设置AlwaysRunning,但是没有生效问题依旧存在
预热组件下载地址:http://www.iis.net/downloads/microsoft/application-initialization
预热配置界面下载:http://www.it165.net/uploadfile/2013/0601/20130601104150404.zip
6、升级服务器到windows server2012或更高,安装IIS8.0,注意安装IIS时候选择上 应用程序初始化 ,应用程序池启动模式:AlwaysRunning、闲置超时:1740分、网站预加载已启用:True,最后问题解决!