爲了加快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