2013-10-22 131 views
2

我有一個運行在IIS 7.5/.NET Framework 4.0服務器上的asp.net web應用程序。每當我導航到在此服務器上運行的任何網頁時,最初加載大約需要12秒。之後,導航很快(大約0.5秒,即使是重擊頁面)。如果您將其閒置兩分鐘,則會在下一次請求時再次減速。我可以說這是因爲連接超時設置爲120秒......我猜測在該限制之後,站點必須在下一頁請求時重新載入所有內容。該網站確實會調用兩個不同的數據庫,但是,默認頁面不應該這樣做,並且會遭受較長的初始加載時間。我曾嘗試爲IIS 7.5設置應用程序初始化,但在完成後最多注意到邊緣變化。從我一直在閱讀的內容來看,在IIS 7.5中這個模塊似乎取得了很大的成功。有沒有其他方法可以避免這種加載時間,而不必單純依靠高連接超時值,因爲這無法解決初始加載時間?ASP.NET Web應用程序緩慢

+1

是否有數據庫參與?我沒有看到這一點。 –

+1

我希望這會幫助你: http://stackoverflow.com/questions/13386471/fixing-slow-initial-load-for-iis – 2013-10-22 23:42:24

+1

什麼是在這12秒加載? – Zerkey

回答

1

,因爲我認爲這是,而是另一個超時和必要的文件丟失是不相關的連接超時。 Per Zerkey在上面的評論中提出了一個問題,我對此有點好奇,並且想方設法查看加載的內容,因爲從我的PC進行調試的速度仍然很慢,但速度很快(大約4-6秒)。在發佈到服務器上的IIS中,我去了工作進程,選擇了進程並單擊了右側的當前請求。這告訴我,它掛在我使用的第三方移動重定向服務51degrees.mobi上。這些文件加載​​需要12秒鐘的時間。發生的情況是,日誌記錄功能被設置爲登錄App_Data文件夾,並且該目錄丟失。它顯然沒有給我一個明顯的錯誤,它只是試圖失敗。一旦我添加了這個目錄和日誌文件,並重新啓動應用程序初始化,一切都很快。

3

當WebApp隨時間空閒時,IIS將關閉應用程序以節省資源。這可能發生在你的情況。

它還表示,如果最後一個用戶會話超時,應用程序將關閉。我希望this文章將正確引導你。

看看請求到達運行時會發生什麼。

  1. 當ASP.NET接收一個 申請的任何資源的第一請求,一個名爲ApplicationManager類創建的應用程序 域。 (應用領域爲全局變量提供 應用程序之間的隔離,並允許每個應用單獨卸載 。)
  2. 內的應用領域,命名爲託管 環境的類的實例被創建,它提供了訪問信息有關 應用程序,例如存儲應用程序 的文件夾的名稱。
  3. 創建應用程序域並實例化主機對象後,ASP.NET會創建並初始化核心對象,如HttpContext,HttpRequest和HttpResponse。
  4. 核心應用程序對象初始化完成後,通過創建 HttpApplication類的實例來啓動 應用程序。
  5. 如果應用程序具有Global.asax文件,則ASP.NET將創建 Global.asax類的一個實例,該實例源自 HttpApplication類,並使用派生類來表示 應用程序。

看看它是如何發生的

How it happens!!!

+0

指南很有幫助,但這裏的問題是由第三方軟件試圖加載不存在的文件引起的。請參閱下面的答案。 –