我有一个asp.net应用程序和其他6个类库项目。在一个主要的类库项目中,我缓存了一些静态DB表。Webdev.webserver40.exe达到约1,5GB,它将“系统从内存异常中抛出”。我知道,在32位机器上,我被限制在2GB的进程大小,但我的开发机器是64位,64位不应该有限制。好的,我看到您说您的Asp.net应用程序无论如何都会运行32位,即使我有64位的机器。因此,我得到了例外。但我能做些什么来解决这个问题呢?
请不要告诉我,我应该做本地DB或其他一些选项,而不是缓存到内存中:)好,这些也是其他选项,但我想知道内存中是否存在这些选项,我甚至需要缓存超过2gb。
PS,Debug选项卡下的“启用VS托管过程”选项是什么。会影响我的问题吗?我试着检查和取消检查,但没什么改变。实际上,检查它的效果更好,但我仍然得到了例外。
编辑1:正如我发现的那篇文章,它告诉我,如果在64位操作系统上运行32位应用程序,我应该有2800 max。进程大小,但为什么它不允许我这样做,并抛出异常约1500 me。
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中添加代码,我在其中进行缓存,以及按照web.config上的建议将代码添加到msdn中,它说的只是框架4.5,但我使用的是4.0。在4.0上也有类似的黑客吗?因为我不确定是否应该安装并开始使用4.5,而它不是最后一个版本。
<runtime>
<gcAllowVeryLargeObjects enabled="true" />
</runtime>谢谢你的帮助。致以问候。
发布于 2016-03-05 13:33:58
可以将IIS express设置为在visual studio中运行64位:
转到Visual Tools - Options菜单
选择:-项目和解决方案,然后选择Web项目
勾选复选框:“为网站和项目使用IIS Express的64位版本的用户”
没有必要编辑注册表。
发布于 2012-07-16 19:49:44
我可能弄错了,但我确实相信Webdev.webserver40.exe。卡西尼( Cassini)是一个32位的本地C++应用程序.
在“asp.net web项目属性”页面中,选中“使用issue”框,查看是否解决了您的问题。
编辑:也检查这些东西-
https://stackoverflow.com/questions/11509120
复制相似问题