IIS 8.5冷启动

我有一个VDS上托pipe的小型ASP.NET MVC 5 Web应用程序。
VDS具有以下configuration:2.6 Gz CPU,1 Gb RAM,20 GB SSD,Windows Server 2012 R2,IIS 8.5。

有最多5个并发用户可以访问此网站。 一切工作都很快,但冷启动可能需要很长时间。 我知道有不同的选项来减less冷启动时间:

  • 我可以使应用程序池“始终运行”并将preloadEnabled设置为true。
  • 或者我可以使用IIS 8.5的新“暂停”function。

可能还有其他的可能性,我不知道。 减less冷启动时间的最佳策略是什么?

解:

  • 正如所build议的,我增加了AppPool关机超时。 而是把它设置为12小时,我把它设置为0(禁用它),并预定AppPool回收到凌晨04:00。
  • 我启用了应用程序初始化,并将其configuration为将请求发送到执行初始化的特殊页面。 在我的应用程序是DbContext的初始化。
  • 应用程序初始化模块只能发出http请求,但整个我的应用程序被ASP.NET MVC RequreHttpsAttribute保护。 所以最初它失败了。 如本文所述,通过在本地请求上禁用httpredirect到https可以解决这个问题 。

“始终运行”是最好的select。 过去,你需要提供更多的细节。

您是否在白天经常更新应用程序? 如果是这样,你在做应用程序启动的东西吗? 预加载数据到caching/等?

你有没有“经常运行”的货币/资源问题? 可能会延长您的AppPoolclosures超时时间到12小时,并写一个计划的任务来打你的应用程序在用户到达那里之前。 这样它可以在晚上关机。