Asp.net XMLSerializer.Serialize上的.NET OutOfMemoryException
我有一个网站,每当它到达我代码中的以下位置时,就会抛出OutOfMemoryExceptions:Asp.net XMLSerializer.Serialize上的.NET OutOfMemoryException,asp.net,out-of-memory,xmlserializer,Asp.net,Out Of Memory,Xmlserializer,我有一个网站,每当它到达我代码中的以下位置时,就会抛出OutOfMemoryExceptions: XmlSerializer xs = new XmlSerializer(t, xoverrides); 看到这种情况只有在web服务器上才会发生,我没有太多关于为什么会发生这种情况的信息。我知道它正在序列化的对象没有什么太严重的问题——每个对象肯定都少于1 MB 你以前吃过这个吗?想帮我诊断这个问题吗?感谢您的帮助 谢谢 如果我回想一下前一段时间类似的问题,XmlSerializer需要的内存
XmlSerializer xs = new XmlSerializer(t, xoverrides);
看到这种情况只有在web服务器上才会发生,我没有太多关于为什么会发生这种情况的信息。我知道它正在序列化的对象没有什么太严重的问题——每个对象肯定都少于1 MB
你以前吃过这个吗?想帮我诊断这个问题吗?感谢您的帮助
谢谢 如果我回想一下前一段时间类似的问题,XmlSerializer需要的内存比处理数据的内存要多。但我不确定为什么会出现这种情况。OutOfMemoryException不是由被序列化的对象引起的,而是XmlSerializer对象构造的结果。创建XmlSerializer时,将动态生成程序集并将其加载到AppDomain中。在卸载这些程序集的AppDomain之前,无法对其进行垃圾收集,在您的情况下,这永远不会发生。根据所使用的XmlSerializer构造函数,构造的每个XmlSerializer都将动态生成一个新程序集。随着时间的推移,这些程序集将消耗所有可用内存 有两种解决方案:
您好,我在使用“新的XmlSerializer(o.GetType());”时遇到了类似的问题。我在我的本地机器上面临这个问题,因为有非常大的数据被序列化,它在托管在云服务器上的live app上没有任何例外。但我无法在开发过程中进一步使用和测试序列化字符串。我愿意听取建议。