我有一个带有其他 6 个类库项目的 asp.net 应用程序。在我的一个主要类库项目中,我缓存了一些静态数据库表。Webdev.webserver40.exe 达到约 1.5 GB,并引发“系统内存不足异常”。我知道在 32 位机器上我最多只能有 2 GB 的进程大小,但我的开发机器是 64 位,64 位不应该有限制。好的,我看到你说你的 Asp.net 应用程序无论如何都会运行 32 位,即使我有 64 位机器。因此我得到了例外。但是我能做些什么来解决这个问题呢?
- 我打开配置管理器并尝试将所有类库更改为 x64,但我无法更改我的主网站项目。这就是为什么 32 位网站上无法识别 64 个参考文献的原因。
请不要告诉我我应该做本地数据库或其他一些选项,而不是缓存到内存中:) 好的,这些也是其他选项,但是我想知道内存中是否有任何其他选项。我需要甚至有超过 2gb 的缓存。
PS,调试选项卡下的“启用 VS 托管进程”选项是什么。它会影响我的问题吗?我尝试检查和取消检查,但没有任何改变。确实看起来检查它的效果更好,但我仍然遇到异常。
编辑 1:当我发现那个帖子时,它告诉我如果在 64 位操作系统上运行 32 位应用程序,我应该有 2800 mb max。进程大小,但为什么它不允许我这样做并在 1500mb 左右抛出异常。
编辑 2:我尝试在我做缓存的类库的 app.config 中添加该代码,并按照msdn上的建议添加到 web.config 中,它只说框架 4.5,但我使用 4.0。4.0 上是否有类似的 hack?因为我不确定是否应该安装并开始使用 4.5,虽然它不是最后一个版本。
<runtime>
<gcAllowVeryLargeObjects enabled="true" />
</runtime>
谢谢你的帮助。问候。