环境
项目:.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,最后问题解决!
转自:codeIsArt
cnblogs.com/fanyang1/p/14110787.html