Mic*_*cah 7 asp.net out-of-memory xmlserializer
我有一个网站,只要它到达我的代码中的以下位置就会抛出OutOfMemoryExceptions:
XmlSerializer xs = new XmlSerializer(t, xoverrides);
Run Code Online (Sandbox Code Playgroud)
看到这只发生在Web服务器上时,我没有大量关于为什么会发生这种情况的信息.我知道它正在序列化的对象并不是太严肃 - 绝对不到每个MB.
你之前有这个吗?觉得帮我诊断一下这个问题?任何帮助表示赞赏.
谢谢!
小智 11
OutOfMemoryException不是由被序列化的对象引起的,而是由构造XmlSerializer对象的结果引起的.创建XmlSerializer时,会动态生成程序集并将其加载到AppDomain中.在卸载AppDomain之前,这些程序集不能进行垃圾回收,在您的情况下永远不会.根据所使用的XmlSerializer构造函数,构造的每个XmlSerializer都将动态生成一个新的程序集.随着时间的推移,这些程序集将消耗所有可用内存
有几个解决方案:
Microsoft KB:在ASP.NET中创建多个XmlSerializer对象时,内存使用率很高
| 归档时间: |
|
| 查看次数: |
3180 次 |
| 最近记录: |