2010-09-28 31 views
1

我有一个Web应用程序,它将包含大约500个子对象的非常复杂的对象序列化到SQL 2008数据库。问题是当对象非常大(超过500个子对象)时,它会产生一个超出内存的异常,我们需要重新启动iis。序列化复杂对象时发生OutofMemory异常

我正在使用.NET中的二进制序列化程序将对象序列化为内存流。我也尝试使用文件流,但也失败了。

该对象的总大小是当序列化到一个文件大约15MB和Web服务器是Windows 2008 IIS 7 32位的一个。

我不需要针对这个对象运行任何查询。只需要将它存储在某个地方,然后检索。

所以,请点我在这里向正确的方向...

回答

0

回答这类问题很难准确地存取你的系统,有太多的未知数。一个15MB的文件流不是很小,但它肯定不是很大,你的系统应该能够很容易地处理它。

这可能是您的网络服务器只需要更多的RAM。你有没有分析机器?它可能不是你的序列化的主要原因,也许你在该服务器上发生的事情太多了。

您可能还想创建自己的自定义序列化器,而不是使用框架内置的自定义序列化器。或者您可能想要调查现有序列化程序的各种选择/退出行为,并查看是否需要将所有内容保存在对象中。

相关问题