2010-01-20 108 views
39

當我訪問使用asp.net構建的網站時,每隔一段時間(總是經過長時間的空閒時間,例如一夜之間) - 加載頁面大約需要15秒(在我看到任何進展之前15秒,然後頁面快速出現)。在asp.net網站上緩慢加載第一頁

該網站上的其他網頁或刷新網頁的速度與往常一樣快 - 它們在其他機器上也很快,只有第一個網頁似乎需要「打」。

頁面跟蹤從來沒有經歷過任何東西(整個週期是幾分之一秒)

所以我的問題是有什麼地方我應該找?也許IIS?或者它可能仍然是我的asp.net應用程序,我只是在錯誤的地方(追蹤)尋找線索?

由於我對IIS服務器沒有太多的控制,所以我可以通過asp.net檢查任何東西,在我去問那個特定的管理員之前會更有幫助。

歡呼:d

+1

是否使用ngen.exe幫助,這類型的問題? http://msdn.microsoft.com/en-us/library/6t9t5wcf(VS.80).aspx – 2010-01-20 16:10:17

回答

39

30分鐘不活動後,IIS應用程序池將關閉。之後,當您提出請求時,IIS基本上必須重新啓動該網站,這會導致您所描述的行爲。您可以在iis中更改您的網站的空閒時間,但要避免它。

+1

我會去這個答案。 Usnless你缺乏系統資源,你可以增加超時值。 – modernzombie 2010-01-20 15:56:11

+0

感謝klausbyskov和所有其他幫助 - 非常感謝。我知道現在到哪裏看:) – 2010-01-20 16:37:13

5

您可以安排應用程序池的回收,可能使用一個熱身腳本。先給它自己的應用程序池,看看是否有幫助。

+1

@Taboloo - 在應用程序池上使用熱身腳本。如果你的應用程序很大並/或佔用大量內存/ cpu空間,那麼請確保你配置你的池設置來處理這個額外的負載。 – 2010-01-20 15:59:12

2

我以前遇到同樣的問題。我從來沒有設法解決這個問題,但我懷疑IIS應用程序池是罪魁禍首。

5

當您的站點備份您的Application.OnStart將觸發(在您的global.asa中)的情況下,如果您在此處做了大量工作,這可能會減慢您的應用程序。 所有緩存中的其他內容都將爲空,所有數據庫連接將斷開連接。

如果您無法訪問IIS設置,則可以在IIS中對此行爲進行配置,這種方法是每隔10分鐘從腳本或具有元刷新的特殊頁面擊中網站。

您的其他選擇是接受當天的第一頁命中需要幾秒鐘,然後再使用。