2011-09-02 105 views
1

我經常收到此消息,並認爲這並不常見,我該如何解決此問題?Asp.net會話很快就會過期

與「8052」服務應用程序池mywebsite.com「的進程ID的工作進程已請求回收,因爲它已經達到其專用 字節內存限制。

+0

網站上有多少用戶? – TheCodeKing

回答

4

嗨,這是不是因爲超時過期,它是一個應用程序池回收,由於內存限制。通常非常糟糕。

如果您完全控制了您的ASP.NET應用程序,我建議您仔細分析它並檢測您分配的位置,而不是釋放/處理大量內存。

這可能有助於理解用戶經常遇到的常見用例並開始調查這些用例。

您是否正在加載大量內存中用於文件下載的byte []?

你是否在會話中保留了太多參考?

一旦我們遇到了類似的問題,並且我們在幾周後才發現我們在會話中存儲了對頁面的引用,因此所有訪問過的頁面都一直保存在內存中。不容易找到,但一旦我們糾正這個問題就解決了。

+0

感謝Davide Piras爲您提供快速和完整的迴應 – SnowStorm

0

也許你的應用程序使用大量的內存?關於this post,您已達到應用程序允許的內存大小,IIS將重新啓動應用程序池。

1

您可能有內存泄漏。有很多可能的原因,可能會使用靜態事件註冊會話或請求實例。嘗試將太多數據加載到內存中的操作,會話超時設置太長等。

您需要執行一些分析以確定原因。

當然,它也有可能你沒有足夠的內存供用戶數量和需要擴展,但除非你有很多流量,否則它是不太可能的。