回答

4

ASP.NET 4.0中會有一個「自動啓動」功能(Scott Guthrie talks about it),但現在不會對您有所幫助。

請確保您的網站/應用程序的應用程序池正在運行,不會自動進入「睡眠」狀態。 20分鐘無效後,默認應用程序池被設置爲關閉。我記得這不會使網站重建,但使第一個請求顯着變慢。

小記,網站項目也可以構建,所以你的App_Code將是空的,你的bin文件夾將包含一堆.dll(只需使用Build> Build Website)。這絕對會讓您的網站的第一個請求更快。我不認爲網站應用程序的啓動速度比預編譯的網站項目快,但它更容易管理。

+0

是的,我確實在4.0中設置了新功能。但是,我不知道這是否會加快速度,它只會確保應用程序已準備就緒。但實際啓動時間可能會相同。 關於應用程序池關閉...我不確定是否要刪除該應用程序池。如果沒有人使用它,我仍然希望關閉應用程序,因爲我們有多個站點在同一臺服務器上運行。但我明白你的觀點。 你確定一個網站項目可以像這樣「建造」嗎?你的意思是發表? – 2010-02-19 15:20:14

0

主要是,我們使用網站項目,所以我認爲切換到web應用程序項目會加快這一點,因爲所有的代碼文件都被預編譯成.dll。

當使用網站項目,我認爲移動App_Code文件的文件到外部類庫也將加快速度,因爲代碼將被預編譯。

1

是的,轉移到網絡應用程序將加速重新啓動過程。要做的另一件事是讓你的global.asax儘可能乾淨。

即使使用網絡應用程序,如果修改了這些配置文件中的任何一個,或者bin目錄中的程序集發生更改,網站也會重新啓動。你不能阻止這一點。

重新啓動時間應該在2到3秒內相當快。但是,我看到一些非常複雜的global.asax文件,它們設置了一些需要長達20秒的域級數據。當然,他們願意付出這樣的代價,因爲它將一些正常的頁面加載時間從3秒縮短到了0.1秒。

0

我有一個類似的問題,我正在運行一個非常高的流量網站,得到一個很好的300+請求/秒。重新啓動至少需要90秒。

當我做出重新啓動服務器的更改時,似乎重新啓動失敗,直到所有舊請求(其中一些很長時間運行)都關閉。我可以通過手動殺死舊的w3wp.exe實例來使重啓發生得更快。

是否有某種方法可以強制IIS立即關閉所有連接並執行硬重啓?在IIS或asp.net的一些設置來控制這個?

+0

你應該問這是一個單獨的問題,並會得到一些很好的答案! – 2014-10-16 14:27:52

+0

完成!它是:http://stackoverflow.com/questions/28053268/how-to-get-fast-asp-net-application-restart-recycle-on-high-traffic-site – 2015-01-20 19:06:54

相關問題