我有一个使用大量数据的C#Asp.net Web应用程序,在某些时候我得到了System.OutOfMemory异常,尽管应用程序只使用了大约4GB的RAM而我的计算机上有32GB的RAM (其中至少20个是免费的)。
如果我有这么多可用内存,为什么我会得到这个例外?有没有办法增加内存限制?
提前致谢
修改
伙计们,非常感谢你们试图帮助我 - 我已经阅读了这两篇文章,但我仍然不明白 - 是否真的不可能以某种方式解决这个问题?这是否意味着基本上无论我在C#上开发什么,我都不可能使用超过4GB?我相信这有一个方法吗?
答案 0 :(得分:3)
如果它是32位.NET应用程序,则地址空间限制为4G。 Details here.
使用32G内存,您可以同时运行大量4G应用程序。但每个应用程序仅限4G。
答案 1 :(得分:1)
如果它是32位应用程序,那么无论你拥有多少物理内存,它都只能处理4GB的内存。本文很好地解释了这种情况:https://blogs.msdn.microsoft.com/ericlippert/2009/06/08/out-of-memory-does-not-refer-to-physical-memory/。
P.S。你可以通过快速搜索获得所需的信息。在下次发布之前查看现有帖子:)