2009-04-22 53 views
7

我正在使用特別慢的虛擬Web主機(名稱版主!),其中磁盤性能可能非常差。因此,第一次打到我的ASP.Net網站可能需要1分鐘以上的時間才能加載。 (在初始加載後,它全部在RAM中並且沒問題。)如何提高IIS/ASP.Net上的啓動性能

我想知道是否有人知道指示IIS預加載該網站的方式?是本質,模仿第一擊?

我已經玩過所有預編譯的東西,它有幫助,但它不是上述的替代品。

謝謝!

+0

看起來像ASP.net 4.0中有更好的支持:http://www.asp.net/learn/whitepapers/aspnet40/#_Toc223325464 – 2009-05-27 06:19:13

回答

3

您的應用程序是否需要回收?所有的回收選項都在IIS配置中,並且可以進行調整以適合您的應用程序。

理想的情況是刪除所有的應用程序回收,以便應用程序始終保持加載狀態。那麼只有在web.config文件被更改或部署了應用程序的新版本時纔會發生回收。

如果需要每日回收,根據以前的回答,可以使用批處理文件回收應用程序,也可以使用應用程序的URL調用iexplore.exe以「預加載」它。

0

爲什麼你不能有一個批處理文件,其中iis被重置,並讓它計劃在特定時間每天執行(當你的系統上沒有用戶時)?

0

如果您的提供者可以讓您在重新啓動Web服務器時掛鉤,您可以在Web服務器重新啓動後使用批處理文件/腳本文件打擊您的網站。您只需要打擊唯一的ASP.NET程序集文件即可將該特定程序集存入內存。因此,如果您有一個包含10頁的程序集,只需點擊其中一個頁面即可。這應該夠了。如果您有多個裝配體,請在每個裝配體中打1個頁面以將這些裝配體裝入內存。

如果你不能在你的提供者那裏得到它,那麼你必須想出一個更聰明的方法來自己做到這一點(即瞭解提供者何時重置Web服務器和計劃任務到你的機器頁面自己)。

0

您希望預先加載多少網站?多少頁?

您可以預編譯站點,以刪除問題的「編譯」部分,但如果站點足夠大,則可能無法「預加載」站點。如果該網站在多個主機上運行,​​情況尤其如此。

0

在程序集被修改後,第一次從已編譯的ASP.NET應用程序請求頁面時,處理的時間比普通的頁面請求要長很多。

因此,針對您的問題的一個簡單解決方案是在任何修改後立即從應用程序請求頁面。這樣,你是第一個請求一個頁面,並且你會招致漫長的等待,而不是你的用戶。