方法如下:        
public byte[] Serialize(Object o)
        {
            MemoryStream stream = new MemoryStream();
            IFormatter formatter = new BinaryFormatter();
            formatter.Serialize(stream, o);
            stream.Position = 0;
            return stream.ToArray();
        }传入一个DataSet,当DataSet数据过多时调用此方法会抛出Exception of type 'System.OutOfMemoryException' was thrown.异常,重启IIS后可以暂时正常使用,一段时间后又会出现此问题。请问序列化的方法是否有问题?方法最后是否需要释放资源?

解决方案 »

  1.   

    DataSet如果真的很大,而内存又很小,这样序列化的确会溢出,没有办法,内存释放不可能那么及时的,外加你外部使用还有存留的时间,IIS又是多线程的访问,问题需要从其它方面入手考虑,这个方法没有多余的油水给你优化。
      

  2.   

    那应该从哪方便入手呢?内存肯定是够用的,服务器的配置还是挺高的。
    现在的方法就是在索引界面多选几个条件,这样取出来的DataSet就会小一些,就不出错了。但是这个不是根本的办法,还是需要哪里优化改进一下?