2012-06-17 125 views
0

我有一個非常大的ASP.NET應用程序中的內存泄漏問題。大約24小時的使用後(有時會多得多)會引發OutOfMemory異常。因此,我正試圖瞭解託管內存在.NET中的工作原理。 ASP.NET應用程序何時拋出OutOfMemory異常?服務器有很多內存,並且在拋出OutOfMemory異常時總會留下足夠的內存。我理解虛擬內存和物理內存之間的區別。在拋出OutOfMemory異常之前,W3WP進程必須消耗多少內存?是否有某種設置,例如在Machine.Config文件中? ASP.NET進程永遠不會被回收。ASP.NET內存泄漏

+0

您的應用程序池定義了最大內存以及在達到限制時觸發的操作。所以在那裏尋找你的財產採取短暫的行動。一般來說,您需要檢查您的代碼,以瞭解您使用並釋放您用來防止永久增加內存使用量的資源。 – YvesR

回答

0

除了我上面的評論:請檢查您的主要資源使用情況,並在使用結束時確保使用.Dispose()釋放它。

對於內存使用情況,請轉到IIS管理器,打開樹並導航到您的應用程序池。編輯你的網站使用的池中的高級屬性,並檢查/設置那裏的設置。

0

我使用了ANTS內存分析器。這將幫助您找到代碼導致menory泄漏的地方。您還可以在perfmon工具中創建用戶定義的性能監視器。

這對我有效。讓我知道是否需要更多幫助