簡體   English   中英

每次重新啟動或發布網站時,如何在iis7.5上手動為asp.net mvc創建首次請求?

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

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