【问题标题】:.Net Core Slow after idle.Net Core 空闲后变慢
【发布时间】:2016-11-07 13:59:05
【问题描述】:

我有一个新的 .netcore web 应用程序部署到 windows server 2008R2 IIS 实例,在应用程序空闲一段时间后,第一次加载时速度很慢,然后后续请求非常快。

在以前的 .net 版本中,我将 IIS 中应用程序池的空闲超时属性更改为 0 以解决此问题。 .netcore 的某个地方是否有类似的设置,也许我错过了我可以添加到 Startup.cs 文件中?

【问题讨论】:

  • ASP.NET Core per see 没有生命周期回收。是 IIS 做的,所以你需要在那里设置它,因为 IIS 负责启动和停止 (ASP).NET Core 应用程序
  • @Tseng 你有什么建议?我已将 IIS 设置为永不超时,但 .netcore 应用程序在闲置一段时间后首次启动仍需要更长的时间。我在他的回答中采纳了 wolvenhaven 的建议,编写了一个快速脚本,该脚本刚刚点击了应用程序中的一个页面,这似乎有所帮助。
  • 如果你能一致地重现这个,你能提交一个错误github.com/aspnet/KestrelHttpServer

标签: asp.net-core iis-7.5


【解决方案1】:

如何在 IIS 上设置应用程序池空闲时间?

还要确保未选中回收设置

【讨论】:

  • 您阅读我的问题了吗?这是我尝试的第一件事。
  • 是的,我做到了,令人惊讶的是,它在使用 ASP.NET Core v1.0.1 后可以正常工作
  • 这很奇怪。我在 .net core 1.0.1 上更改了相同的设置,但没有任何改变。
  • 你在任务管理器中查看进度了吗?我从过去知道红隼应用程序在一段时间后在任务管理器中消失了......
  • 我做到了,并且 kestrel .net 核心应用程序始终位于活动进程的顶部。虽然这可能是因为我写的空闲服务每分钟都在 ping 站点。
【解决方案2】:

由于我不熟悉 .netcore,因此存在合法修复;编写一个返回 HTTP 200 或类似心跳的路由,然后每隔 X 分钟(空闲 - 1)从计划任务中调用它,这将防止应用程序空闲,从而防止它减慢请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-17
    • 2022-08-17
    相关资源
    最近更新 更多