为了加快ASP.NET MVC应用程序的反应时间,我们希望在安装该应用程序后"热身"该应用程序(或在App池已完成后回收)。一些经常使用的查找数据应从SQL Server数据库中获取,并存储到.NET提供的全局System.Runtime.Caching.MemoryCache
对象中。
对于您的ASP.NET应用程序专用II的专用VM的情况,我首先将应用程序池设置为"始终运行" - 这是步骤#1。
在这种情况下,我看到了两个选项:
-
按照
System.Web.Hosting.IProcessHostPreloadClient
接口的Scott GU本博客文章中所述的应用程序热身。如果我正确理解,则此代码在启动应用程序池时运行,并且在将第一个请求接受到应用程序中
之前 使用
global.asax.cs
中的Application_Start
事件。如果我正确理解,则此事件仅为一次,当该应用程序首次启动时(安装后会自动发生,因为App池设置为"始终运行" - 右?)
so-鉴于此设置 - 哪种"预热"应用程序的首选方法?这两种方法之间有显着差异吗?当使用一种方法与另一种方法相比,我需要注意什么?
感谢您提供的任何输入,提示,警告或更多链接,以更详细地解释这一点!
简短的答案,使用IProcessHostPreloadClient
- 它将在启动时立即运行。
Application_Start
有点错误,它实际上是在第一个请求上发射的。这意味着该站点可能会回收/重新启动并闲置,可能会变暖。
如果您的网站在IIS 7或以上,我不知道使用Application_Start
的理由。