ASP.NET MVC-应用热身 - 使用两种方法中的哪种



为了加快ASP.NET MVC应用程序的反应时间,我们希望在安装该应用程序后"热身"该应用程序(或在App池已完成后回收)。一些经常使用的查找数据应从SQL Server数据库中获取,并存储到.NET提供的全局System.Runtime.Caching.MemoryCache对象中。

对于您的ASP.NET应用程序专用II的专用VM的情况,我首先将应用程序池设置为"始终运行" - 这是步骤#1。

在这种情况下,我看到了两个选项:

  1. 按照System.Web.Hosting.IProcessHostPreloadClient接口的Scott GU本博客文章中所述的应用程序热身。如果我正确理解,则此代码在启动应用程序池时运行,并且在将第一个请求接受到应用程序中

  2. 之前
  3. 使用global.asax.cs中的Application_Start事件。如果我正确理解,则此事件仅为一次,当该应用程序首次启动时(安装后会自动发生,因为App池设置为"始终运行" - 右?)

so-鉴于此设置 - 哪种"预热"应用程序的首选方法?这两种方法之间有显着差异吗?当使用一种方法与另一种方法相比,我需要注意什么?

感谢您提供的任何输入,提示,警告或更多链接,以更详细地解释这一点!

简短的答案,使用IProcessHostPreloadClient - 它将在启动时立即运行。

Application_Start有点错误,它实际上是在第一个请求上发射的。这意味着该站点可能会回收/重新启动并闲置,可能会变暖。

如果您的网站在IIS 7或以上,我不知道使用Application_Start的理由。

最新更新