为了加快ASP.NET MVC应用程序的响应时间,我们希望在应用程序安装完成后(或在应用程序池被回收后)“预热”应用程序。应该从SQL Server数据库中提取一些经常使用的查找数据,并将其存储到.NET提供的全局对象System.Runtime.Caching.MemoryCache
中。ASP.NET MVC - 应用程序预热 - 两种使用方法中的哪一种?
对于您有一个专用的虚拟机和专用的IIS为您的ASP.NET应用程序的情况下,我首先将应用程序池设置为“始终运行” - 这是第1步。
鉴于这种情况,有两种选择我看到:基于System.Web.Hosting.IProcessHostPreloadClient
接口
应用热身描述in this blog post by Scott Gu。如果我理解正确的话,这个代码运行时,应用程序池已启动,并且第一请求被接受为应用程序之前
在
global.asax.cs
使用Application_Start
事件。如果我理解正确,这个事件被称为一次,当应用程序第一次启动(安装后会自动发生,因为应用程序池被设置为“Always Running” - 对吧?)
所以 - 给定这个设置 - 这是“预热”你的应用程序的首选方式?这两种方法有什么显着差异?在采取一种方法时,我需要注意什么?
感谢您的任何输入,提示,警告或进一步的链接,更详细地解释这一点!
您的应用程序是否预编译?如果合并/未合并。我相信这会影响到你的“热身”时间。在我看来,始终运行的开销是整个应用程序都坐在内存中,永远不会按需要释放? – DaniDev