簡體   English   中英

ASP.NET MVC - 應用程序預熱 - 使用哪兩種方法?

[英]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。

鑒於這種情況,我看到有兩種選擇:

  1. Scott Gu基於System.Web.Hosting.IProcessHostPreloadClient接口撰寫的博客文章中描述的應用程序預熱。 如果我理解正確,此代碼在應用程序池啟動時以及在第一個請求被接受到應用程序之前運行

  2. 使用global.asax.csApplication_Start事件。 如果我理解正確,當第一次啟動應用程序時,此事件只被調用一次 (這將在安裝后自動發生,因為應用程序池設置為“始終運行” - 對嗎?)

那么 - 鑒於此設置 - 這是“預熱”您的應用程序的首選方式? 這兩種方法之間是否存在顯着差異? 當采用一種方法而不是另一種方法時,我需要注意什么?

感謝您提供任何輸入,提示,警告或更詳細解釋的鏈接!

簡短的回答,使用IProcessHostPreloadClient - 它將在啟動時立即運行。

Application_Start有點用詞不當,它實際上是在第一個請求時觸發。 這意味着該站點可能會重新啟動/重新啟動並且閑置,可能會變暖。

如果您的站點在IIS 7或更高版本上,我不知道使用Application_Start的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM