[英]How manually create first request for asp.net mvc on iis7.5 when every time restart or release the website?
你們都知道:在IIS7.5上 ,第一個請求非常慢 。 因此,我認為也許我可以在網站每次啟動,重新啟動,周期時間結束后手動創建請求 。
我進行了很多搜索,然后發現了自動啟動功能: http : //www.schwammysays.net/auto-starting-websites-on-iis-7-5/
添加此代碼后,我在Global.asax的 Application_Start()中手動創建一個請求
protected void Application_Start()
{
'' original logic here ''
System.Threading.Tasks.Task.Factory.StartNew(new Action(() =>
{
try
{
// send request after 100 second
System.Threading.Thread.Sleep(1000 * 100 * 1);
WebClient webClient = new WebClient();
using (Stream stream = webClient.OpenRead(ConfigurationManager.AppSettings["InitialPath"]))
{
if (stream.CanRead)
{
log.Debug("warm success");
}
else
{
log.Debug("can't read");
}
}
}
catch (Exception ex)
{
log.Error(ex);
}
}));
}
但問題是:1.僅在IIS7.5循環時間結束時才觸發。 重新啟動網站,啟動或釋放網站時不會觸發(甚至更改web.config)。 2.有些網站仍然沒有被解雇,我聽不懂。
因此,我正在搜索網站啟動,更改,重新啟動,IIS循環時間結束時,還有其他方法可以觸發Application_Start()或創建請求嗎? 我的服務器是:Windows Server 2008 R2
您要查找的搜索詞是“應用程序預熱”。
您可以將應用程序初始化模塊用於IIS 7.5 。 設置說明可在此處和此處找到。 請注意,您需要對applicationHost.config
進行一些編輯,並且需要專門針對.NET Framework版本進行設置。
然后,您可以在web.config
擁有類似的內容
<applicationInitialization
doAppInitAfterRestart="true" >
<add initializationPage="/" />
</applicationInitialization>
每次您的應用程序自動啟動時,這會將請求發送到您的應用程序的根目錄( initializationPage="/"
)。
在這里找到答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.