环境
-
项目:.NET Core 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、在命令行切换到 当前项目目录
使用.NET Core内置服务器Kestrel启动,问题依然没有解决
4、在接口中设置一个test参数直接返回OK
利用windows计划程序,每隔2分钟执行批处理文件 去请求唤醒它,问题还是存在
5、在IIS 7.5中安装 应用程序预热模块,
下面是下载链接,2个组件都要安装,选择应用程序池设置AlwaysRunning,但是没有生效问题依旧存在
预热组件下载地址:http://www.iis.net/downloads/microsoft/application-initialization
预热配置界面下载:http://www.it165.net/uploadfile/2013/0601/20130601104150404.zip
6、升级服务器到Windows Server 2012或更高
安装IIS 8.0,注意安装IIS时候选择上 应用程序初始化 ,应用程序池启动模式:
AlwaysRunning、闲置超时:1740分、网站预加载已启用:True,最后问题解决!