为了加快我们的 ASP.NET MVC 应用程序的反应时间,我们希望在应用程序安装后(或在应用程序池被回收后)“预热”它。一些经常使用的查找数据应该从 SQL Server 数据库中获取,并存储到System.Runtime.Caching.MemoryCache
.NET 提供的全局对象中。
对于您的 ASP.NET 应用程序有一个带有专用 IIS 的专用 VM 的情况,我首先将应用程序池设置为“始终运行”——这是第 1 步。
鉴于这种情况,我看到了两种选择:
应用程序预热,如Scott Gu 的这篇博客文章中所述,基于
System.Web.Hosting.IProcessHostPreloadClient
界面。如果我理解正确,此代码在应用程序池启动时运行,并且在第一个请求被接受到应用程序之前运行使用 中的
Application_Start
事件global.asax.cs
。如果我理解正确,此事件仅在第一次启动应用程序时调用一次(安装后会自动发生,因为应用程序池设置为“始终运行”-对吗?)
那么 - 鉴于此设置 - 这是“预热”您的应用程序的首选方式?这两种方法之间有什么显着差异吗?当使用一种方法而不是另一种方法时,我需要注意什么?
感谢您提供任何输入、提示、警告或更多链接,以更详细地解释这一点!