2015-09-04 49 views
4

除了在IIS上運行的ASP.NET應用程序中發生的臭名昭着的慢啓動問題,我們還遇到了另一個問題。重新啓動後,每個頁面的MVC應用程序都很慢

新的應用程序啓動後(例如iisreset),第一個請求需要一段時間。然而,在當前的應用程序中,對於尚未加載的頁面的其他每個請求都需要大約10-12秒的時間!

加載頁面後,對同一資源的所有其他請求再次快速(通常爲80-130 ms)。對於來自其他客戶端機器的第一次加載也是如此,所以這不是客戶端緩存問題。

例如:

Machine | Request   | Duration | 
A  | GET/   | 43000 ms | (wakeup) 
A  | GET/   | 90 ms | 
B  | GET/   | 90 ms | 
A  | GET /registration | 12000 ms | 
A  | GET /registration | 110 ms | 
A  | GET /registration | 110 ms | 
A  | GET /registration | 110 ms | 
A  | GET /foobar  | 11000 ms | 
A  | GET /foobar  | 85 ms | 
B  | GET /baz   | 10000 ms | 
A  | GET /baz   | 100 ms | 

有趣的是,當我們在我們的DEV機(debug = true可等)運行應用程序,這不會發生。只有當我們發佈網站(debug = false,預編譯等)時,這種行爲纔會發生。

所有的靜態資源都被正確地綁定和緩存,並且沒有一個請求確實可能需要超過1秒。應用程序池和網站配置爲自動啓動並運行forver。

我將不勝感激任何提示。

+0

您是否找到解決方案?我拉我的頭髮(比喻)。 –

+0

nope。到目前爲止最好的解決方案:在開始後捲曲所有URL。 :/ –

回答

0

您可以嘗試預編譯剃刀視圖。

儘管作者將其作爲在項目編譯時在視圖中查找語法錯誤的一種方法,但您可以找到一個示例here

其他材料也可以在'Can Razor views be compiled?' question的答案中找到。

相關問題