2013-06-20 28 views
1

我在IIS 7上有一個asp.net應用程序。它是'預編譯的',但我知道IIS必須在第一次編譯程序集重新運行。asp.net應用程序需要很長時間才能啓動 - 即使編譯後也是如此

下面是問題 - 在我發佈和部署應用程序後,我登錄,並且(如預期的)大約需要30秒才能看到登錄頁面。然後我訪問每一頁,以便它們被編譯(我已經使用了'每個頁面的單個文件'或任何選項)。

到目前爲止這麼好。

然後10分鐘後我登錄,它幾乎是瞬間的。仍然很好,並期望。

然而第二天,我的第一次登錄需要30秒或更多。在此期間,沒有人更改web.config或複製任何新的程序集 - 我確信這一點。

有沒有人有一個想法,爲什麼發生這種情況?是否有應用程序超時(而不是會話超時)?在IIS管理控制檯中是否存在一些設置,我可能已經將某些默認值設置爲最佳值? 感謝您的任何幫助, James

+0

默認情況下,IIS在沒有活動20分鐘後回收應用程序。 –

回答

2

是的,在IIS中啓動ASP.NET應用程序相對較慢。多少?這取決於...

由於IIS在一段時間內處於非活動狀態時會關閉應用程序,因此它在第二天再次減速。

解決方案是「應用程序初始化」。這是內置在IIS 8中,並可作爲IIS 7.5的模塊帶外使用: http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-application-initialization

+0

非常感謝,我很高興這不是一些模糊或神祕的設置,我忘了調整。猜猜我卡住了,因爲我在IIS 7上。也許在人們到達前7點調用登錄頁面的批處理腳本是一個解決方法... – jimo3

+0

是的,ping應用程序是一種(骯髒的)變通方法。你也可以嘗試優化你的啓動時間,我認爲30秒有點長。 「網絡應用程序」項目類型在這方面比「網站」好得多,因爲所有東西都提前編譯成一個dll(我認爲你也可以用網站來實現,使用一些預編譯選項)。 – jods

0

高級設置下的應用程序池上有一個空閒超時。將其設置爲0,應用程序不會因不活動而停止。

相關問題