.net core 有没有一种方法可以完全绕过.NETCore中的coldstart?

.net core 有没有一种方法可以完全绕过.NETCore中的coldstart?,.net-core,asp.net-core-2.0,.net Core,Asp.net Core 2.0,很长一段时间以来,人们都知道,第一个发送到.NET应用程序的请求需要很长时间才能响应,有时响应时间太长,以至于用户体验大大降低,导致客户流失 几乎所有的解决方案都只是通过每隔一段时间轮询应用程序,或者通过改变IIS的空闲时间等方式来保持应用程序的活动 现在,我想知道是否有一种机制,我们可以系统地减少冷启动时间,而不是通过侵入它?这里有几个选项: 在IIS中托管时,请禁用空闲时间、重新启动等。还要注意,如果没有传入请求,IIS不会自动启动asp.net核心应用程序。设置轮询任务是此处的一个选项 .

很长一段时间以来,人们都知道,第一个发送到.NET应用程序的请求需要很长时间才能响应,有时响应时间太长,以至于用户体验大大降低,导致客户流失

几乎所有的解决方案都只是通过每隔一段时间轮询应用程序,或者通过改变IIS的空闲时间等方式来保持应用程序的活动


现在,我想知道是否有一种机制,我们可以系统地减少冷启动时间,而不是通过侵入它?

这里有几个选项:

在IIS中托管时,请禁用空闲时间、重新启动等。还要注意,如果没有传入请求,IIS不会自动启动asp.net核心应用程序。设置轮询任务是此处的一个选项

.NET Core 2.1具有更好的启动性能,并提供了启用tierd JIT编译的附加选项(请参阅)


还要注意的是,启动时间会随着启动时的工作强度的增加而进一步缩短。例如,执行EF Core数据库迁移等。

冷启动是不可避免的。没有它,.NET不会运行,只需确保不参与迁移,例如,不要过早预加载大量数据。展示了我们通常做些什么来让事情保持快速(其他答案也可能有帮助)。我也不认为这是黑客行为,我更愿意称之为专业服务器管理。