使用C#在asp.net中填充DataTable时发生System.OutOfMemoryException错误

我有超过1 000 000的大记录,我想将这些数据填充到DataTable中,但是在填充DataTable时,它会抛出像System.OutOfMemoryException这样的exception。 我怎么能解决这个错误? 我还有4 GB RAM和64位操作系统。

如果您需要内存中的所有数据,并且您的应用程序池是x64,并且您使用的是.NET 4.5,则可以使用gcAllowVeryLargeObjects指令…为ASP.NET执行此操作,您需要添加您自己的应用程序池的aspnet.config文件(有关详细信息,请参阅此链接 )并为启动设置此配置:

      

也就是说,在内存中同时处理如此大的DataTable更有可能无法实现,特别是对于Web应用程序(通常适用于多个用户)。

拥有大量内存(可能是每个用户),而你更可能只在任何给定时间内处理该内存的一小部分内容,这只是一种浪费,你应该看看处理问题的另一种方式,而不是强制.NET允许内存中更大的对象。