IIS+ASP.NET Core API闲置10分钟后冷启动故障求助
IIS上ASP.NET Core API冷启动问题求助
我在IIS部署的ASP.NET Core API遇到了冷启动问题:系统闲置约10分钟后,首次发起请求会出现连接错误,但后续所有请求都能正常响应。具体报错如下:
- curl执行请求时报错:
curl: (6) Could not resolve host: curl. curl: (56) Recv failure: Connection was reset - 通过Fiddler抓包时收到报错:
HTTP/1.1 504 Fiddler - Receive Failure
我已经尝试了所有能找到的常规解决方案,但问题依然存在:
- 将应用程序池的
StartMode设置为AlwaysRunning - 配置IIS的
doAppInitAfterRestart启用预加载,并专门添加了无需认证的控制器/端点用于预加载触发 - 将应用程序池的闲置超时时间设为0,让进程转为挂起而非终止
- 禁用应用程序池回收(回收间隔设为0)
补充背景信息供排查参考:
- 项目中实现了BasicAuthentication,采用自定义的AuthenticationHandler完成认证逻辑
- 使用Entity Framework Core连接SQL Server,DbContext通过依赖注入注入到控制器中
- 部署环境为Windows Server 2022上的IIS,用Jenkins做CI/CD;未选择Linux是因为需要运行带Selenium/Chrome的自动化单元测试以便查看执行过程;未使用独立Kestrel是因为难以与Jenkins集成启停操作,且希望将Angular前端应用部署在同一站点上下文下
之前用Python/Flask+Gunicorn搭配Jenkins的部署体验非常顺畅,但创业项目想基于.NET技术栈,所以一直坚持排查这个问题,却始终无法解决,恳请各位提供排查思路或解决方案。
内容的提问来源于stack exchange,提问作者DraxPC
相关产品推荐
相关产品推荐

