【发布时间】:2019-04-25 12:10:53
【问题描述】:
我们已经开始着手一个新项目,我们决定使用 .NET Core 2.2 运行我们的第一个微服务,并使用“进程中”模型将其托管在 IIS 中。
这一直运行得相当好,除了我们注意到在应用程序闲置一段时间后 - 我已经追踪到超过 2 分钟 - 在下一个 HTTP 请求之前有相当长的延迟回来回应。随后的响应几乎是即时的。再放2+分钟,下一个反应就变慢了。
什么可能导致这种情况发生?
IIS 的空闲超时设置为 20 分钟,所以不是这样。我还查看了WebHost.CreateDefaultBuilder(args) 类型,看看那里是否有任何东西,但没有什么特别突出的。我还应该明确说明我对 .NET Core 的了解并不是最好的
编辑:应用程序池已设置为 AlwaysRun,站点的 PreLoad 设置已设置为 true
【问题讨论】:
-
我首先要验证进程没有关闭(检查 W3WP.exe 的 ProcessID)。如果这有效,我会配置 IIS 以捕获比预期延迟更长的请求的失败请求日志,然后检查它在做什么。
-
w3wp 进程不会关闭,它会在应用程序池的空闲超时设置(20 分钟)内保持在那里。此外,请求不会花费很长时间以至于最终失败,它会在几秒钟后返回
标签: asp.net-core iis-10 asp.net-core-2.2