[英]ASP.NET MVC - Application warmup - which of two approaches to use?
为了加快ASP.NET MVC应用程序的反应时间,我们希望在应用程序安装后(或在应用程序池被回收之后)“预热”应用程序。 一些常用的查找数据应该从SQL Server数据库中获取,并存储到.NET提供的全局System.Runtime.Caching.MemoryCache
对象中。
对于您的ASP.NET应用程序具有专用IIS的专用VM的情况,我首先将应用程序池设置为“始终运行” - 这是步骤#1。
鉴于这种情况,我看到有两种选择:
Scott Gu基于System.Web.Hosting.IProcessHostPreloadClient
接口撰写的博客文章中描述的应用程序预热。 如果我理解正确,此代码在应用程序池启动时以及在第一个请求被接受到应用程序之前运行
使用global.asax.cs
的Application_Start
事件。 如果我理解正确,当第一次启动应用程序时,此事件只被调用一次 (这将在安装后自动发生,因为应用程序池设置为“始终运行” - 对吗?)
那么 - 鉴于此设置 - 这是“预热”您的应用程序的首选方式? 这两种方法之间是否存在显着差异? 当采用一种方法而不是另一种方法时,我需要注意什么?
感谢您提供任何输入,提示,警告或更详细解释的链接!
简短的回答,使用IProcessHostPreloadClient
- 它将在启动时立即运行。
Application_Start
有点用词不当,它实际上是在第一个请求时触发。 这意味着该站点可能会重新启动/重新启动并且闲置,可能会变暖。
如果您的站点在IIS 7或更高版本上,我不知道使用Application_Start
的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.