2009-11-24 64 views
0

我有一個從Visual Studio 2005運行的asp.net 2.0 web應用程序。aspnet_wp.exe的初始內存消耗約爲2K。當我導航具有GridView和其他控件的不同頁面時,大小正在增加(大約47K)。內存使用aspnet_wp.exe

我的問題是,如果我關閉瀏覽器,爲什麼不釋放內存,或者即使關閉VS2005,內存消耗也是一樣的。

我已檢查所有打開的數據庫連接並仔細關閉它們,仍存在問題。有人能指導我爲什麼會發生這種情況嗎?決議是什麼?

感謝您分享寶貴的時間。

回答

1

關閉瀏覽器只會在客戶端執行一些操作。 ASP.NET輔助進程是一個服務器進程,保持活動狀態,等待新主機。我沒有聲稱知道如何所有這些工作,但我可以說,服務器進程不會扔掉所有東西,特別是如果它已經加載庫到內存中以供其他客戶端連接使用。

+0

感謝哥們!你是絕對正確的,但是當我從任務管理器關閉進程樹時,我發現所有活動的數據庫連接都關閉了。所以在我看來,這可能是由於連接假脫機而發生的。 – IrfanRaza 2009-11-24 13:17:36

+0

接受答案,如果它工作:) ty。 還有與您的連接關聯的超時,IIS進程將保持這些打開,直到連接超時。無論如何,你應該明確地關閉它們。 – bdwakefield 2009-11-25 19:13:51

1

關閉瀏覽器或關閉VS2005並不需要觸發垃圾收集來收集內存。記憶能保持多久? 5,10分鐘後會發生什麼?

+0

謝謝J.W.!那麼你的意思是與垃圾收集相關的問題,還是我應該明確地調用GC? – IrfanRaza 2009-11-24 13:11:30

+0

這不是一個問題,當GC覺得它需要開始垃圾收集時,它會啓動一個。如果您不完全瞭解它,請不要明確調用GC。 – 2009-11-24 15:23:25

1

AppDomains最多可能需要30秒才能完全關閉。這意味着一旦關閉主機服務器,所有內存可能需要30秒才能從進程中釋放。

+0

謝謝安德魯!但即使在等待10分鐘後,尺寸仍保持不變。 – IrfanRaza 2009-11-24 13:13:44