C#.net 、Dotnet 2.0 池中的内存不足错误

本文关键字:内存不足 错误 net Dotnet | 更新日期: 2023-09-27 18:32:05

一个 32 位 c# 应用程序(dotnet 3.5,托管在 IIS 上)当前面临内存不足错误。该应用程序作为服务托管,它每晚将数据(来自数据库的大约 400 万条记录)加载到内存缓存(字典)中。它早期运行1.4 GB(w3wp.exe)并且非常不稳定,因此在删除数据库数据(1700万到400万)后,内存减少到0.4 GB,这减少了内存不足错误,但它们仍然出现。

RAM 可用,我相信 dotnet 代码在 0.8GB 到 1.2GB 之间显示这种错误。那么,是什么原因可能导致这种情况呢?

任何想法,如果可以暂时完成任何事情,而无需从 IIS 或内存分页等角度更改代码。

问候

C#.net 、Dotnet 2.0 池中的内存不足错误

在 .NET 中,最大对象大小为 2GB。如果由于任何原因读取数据的对象超过 2gb 阈值,则无论它是 32 位还是 64 位或您有多少可用内存,它都会崩溃并出现内存不足异常。

https://msdn.microsoft.com/en-us/library/ms241064%28VS.80%29.aspx

将那么多数据加载到内存中不是一个好主意。