asp.net - 64位机器上系统内存不足异常?

标签 asp.net memory 64-bit out-of-memory

我有一个 ASP.NET 应用程序和其他 6 个类库项目。在我的主要类库项目之一中,我缓存了一些静态数据库表。 Webdev.webserver40.exe 达到约 1.5 GB,并抛出“系统内存不足异常”。我知道在 32 位机器上我的进程大小最多限制为 2 GB,但我的开发机器是 64 位,64 位不应该有限制。好的,我看到你说你的 Asp.net 应用程序无论如何都会运行 32 位,即使我有 64 位机器。因此我得到了异常(exception)。但我能做些什么来解决这个问题呢?

  • 我打开配置管理器并尝试将所有类库更改为 x64,但我无法更改我的主网站项目。这就是 32 位网站无法识别 64 个引用的原因。

请不要告诉我应该执行本地数据库或其他一些选项,而不是缓存到内存中:)好吧,这些也是其他选项,但首先我想知道内存中是否有这样的选项。我什至需要超过 2GB 的缓存。

PS,“调试”选项卡下的“启用 VS 托管进程”选项是什么?它会影响我的问题吗?我尝试检查和取消检查,但没有任何改变。确实看起来检查它效果更好,但我仍然得到异常(exception)。

编辑 1:当我发现该帖子时,它告诉我,如果在 64 位操作系统上运行 32 位应用程序,我最多应该有 2800 mb。进程大小,但为什么它不允许我这样做并在 1500mb 左右抛出异常。

http://blogs.msdn.com/b/tom/archive/2008/04/10/chat-question-memory-limits-for-32-bit-and-64-bit-processes.aspx

编辑2:我尝试将该代码添加到我进行缓存的类库的app.config中,以及按照msdn上的建议添加到web.config中。它说只有框架4.5,但我使用4.0。 4.0 有类似的 hack 吗?因为我不确定是否应该安装并开始使用 4.5,因为它不是最后一个版本。

<runtime>
  <gcAllowVeryLargeObjects enabled="true" />
</runtime>

感谢您的帮助。 问候。

最佳答案

您可以将 IIS Express 设置为在 Visual Studio 中运行 64 位:

转到 Visual Studio - 工具 - 选项菜单

选择: - 项目和解决方案,然后选择 Web 项目

勾选复选框:“为网站和项目使用 64 位版本的 IIS Express”

无需编辑注册表。

关于asp.net - 64位机器上系统内存不足异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11509120/

相关文章:

java - 如何在没有任何 stub 文件的情况下获取远程系统中的 cpu 使用率和可用内存

java - 如何跟踪 Java 应用程序中已使用的内存?

asp.net - 使用 Jquery Ajax 将 DateTime 值传递给 ASMX webMethod

c# - ASP.NET Web 服务是否已被 WCF Web 服务取代?

c# - ASP.NET c# 修复函数库中自定义 ConfirmMessagebox 的 OK 事件

java - Android 64 位兼容性和 'armeabi'?

c++ - 为什么我的编译器在 64 位机器上运行时使用 8 位字符?

c# - ASP 中 ModalPopupExtender 背后的淡出/变暗背景

ios - SDWebImage 疯狂的内存增长,高虚拟内存?高脏内存大小。附视频

c++ - 使用 std::fstream 对象销毁对象时出现 SIGBUS