我有一个带有其他6个类库项目的asp.net应用程序。在我的一个主类库项目中,我缓存了一些静态数据库表。 Webdev.webserver40.exe达到约1.5 GB并且它抛出“系统内存不足异常”。我知道在32位机器上我限制了2 GB的进程大小,但我的开发人员机器是64位,64位不应该有限制。好的,我看到你说你的Asp.net应用程序无论如何都要运行32位,即使我有64位机器。因此我得到了例外。但是我该怎么做才能解决这个问题呢?
请不要告诉我,我应该做本地数据库或其他一些选项,而不是缓存到内存中:)好吧,这些也是其他选项,但我想知道,如果在内存中有任何反正。我需要缓存超过2GB甚至。
PS,在Debug选项卡下是什么“启用VS主机进程”选项。它会影响我的问题吗?我试过检查和取消选中,没有任何改变。确实看起来检查它效果更好,但我仍然得到例外。
编辑1:当我发现帖子时,它告诉我如果在64位操作系统上运行32位应用程序,我应该最多2800 MB。进程大小,但为什么它不允许我这样做并在1500mb左右抛出异常。
编辑2:我尝试在类库的app.config中添加该代码,我在其中进行缓存以及在msdn上建议的web.config中它只说框架4.5但我使用的是4.0。 4.0上有类似的黑客攻击吗?因为我不确定我是否应该安装并开始使用4.5,而不是最后一次发布。
<runtime>
<gcAllowVeryLargeObjects enabled="true" />
</runtime>
感谢您的帮助。 问候。
答案 0 :(得分:4)
您可以将IIS express设置为在visual studio中运行64位:
转到Visual Studio - 工具 - 选项菜单
选择: - 项目和解决方案,然后选择Web项目
勾选复选框:&#34;为网站和项目使用64位版本的IIS Express&#34;
无需编辑注册表。
答案 1 :(得分:1)
我可能错了,但我相信Webdev.webserver40.exe
(a.k.a。Cassini)是一个32位的本机C ++应用程序。
在您的asp.net网站项目属性页面中,选中“使用IIS Express”框,看看是否能解决您的问题
编辑: 检查这些事情 -