2010-09-28 64 views
1

我有一個Web應用程序,它將包含大約500個子對象的非常複雜的對象序列化到SQL 2008數據庫。問題是當對象非常大(超過500個子對象)時,它會產生一個超出內存的異常,我們需要重新啓動iis。序列化複雜對象時發生OutofMemory異常

我正在使用.NET中的二進制序列化程序將對象序列化爲內存流。我也嘗試使用文件流,但也失敗了。

該對象的總大小是當序列化到一個文件大約15MB和Web服務器是Windows 2008 IIS 7 32位的一個。

我不需要針對這個對象運行任何查詢。只需要將它存儲在某個地方,然後檢索。

所以,請點我在這裏向正確的方向...

回答

0

回答這類問題很難準確地存取你的系統,有太多的未知數。一個15MB的文件流不是很小,但它肯定不是很大,你的系統應該能夠很容易地處理它。

這可能是您的網絡服務器只需要更多的RAM。你有沒有分析機器?它可能不是你的序列化的主要原因,也許你在該服務器上發生的事情太多了。

您可能還想創建自己的自定義序列化器,而不是使用框架內置的自定義序列化器。或者您可能想要調查現有序列化程序的各種選擇/退出行爲,並查看是否需要將所有內容保存在對象中。