在ASP.NET Core Web API项目中保持控制器的温暖

lyp*_*ptt 15 .net c# asp.net-web-api

我注意到,经过一段时间后,我的ASP.NET核心Web API服务似乎经历了相同的初始化过程,当您重新启动它们时,即初始请求很慢,但后续请求很快.

有没有一种保持控制器温暖的常用技术,所以这不会发生?作为参考,我没有使用IIS(据我所知),这些服务使用微软的官方.NET Core docker镜像(不是基于Alpine的)在Docker中运行.

我还应该指出,这些服务中的控制器在启动时通过/readyKubernetes调用的端点作为准备检查进行预热.问题是,这似乎并没有特别长.

Erm*_*ish 1

这听起来绝对不像是控制器问题。控制器通常是每个请求的新实例。当您"slow -> 8 seconds, fast -> 300ms"在评论中提到时,这绝对与 Kestrel 或控制器无关。

您的问题可能有很多,但这里有一些猜测:

  • 如果您在 Windows 中运行应用程序(如 Azure 应用服务),则它在 IIS 下运行。您可能需要检查 IIS 和托管设置。如果您的网络服务是“廉价”层,一些主机会暂停您的网络服务。

  • "slow -> 8 seconds"老实说,这听起来像是您的外部呼叫速度很慢。也许是数据库、外部 API 或重新验证的东西。