IIS对于流量较低的网站有一个烦人的功能,它会回收未使用的工作进程,导致第一个用户在一段时间后到达网站以获得极长的延迟(30秒以上).
我一直在寻找问题的解决方案,我发现了这些潜在的解决方案.
A. 使用Application Initialization插件
B. 使用.NET 4自动启动
D. 预编译站点
我想知道哪一个更受欢迎,更重要的是,为什么有这么多解决方案来解决同样的问题?(我的猜测是他们不是,我只是没有正确理解的东西).
编辑
执行C似乎足以让我的网站保持热身,但我发现我网站的真正根源是与实体框架有关,我似乎无法弄清楚为什么它会变冷.看到这个问题,遗憾的是还没有得到解答,已经得到了解答!
我最终只需要制作一个热身脚本来偶尔点击我的网站,以确保它保持快速.
我注意到,经过一段时间后,我的ASP.NET核心Web API服务似乎经历了相同的初始化过程,当您重新启动它们时,即初始请求很慢,但后续请求很快.
有没有一种保持控制器温暖的常用技术,所以这不会发生?作为参考,我没有使用IIS(据我所知),这些服务使用微软的官方.NET Core docker镜像(不是基于Alpine的)在Docker中运行.
我还应该指出,这些服务中的控制器在启动时通过/readyKubernetes调用的端点作为准备检查进行预热.问题是,这似乎并没有特别长.