据我所知,.NET中的单个实例有2 GB的限制.我没有太多关注,因为到目前为止我主要使用32位操作系统.在32但它或多或少是一个人为的限制.但是,我很惊讶地发现这个限制也适用于64位.NET.
由于诸如List<T>使用数组来存储项目之类的集合,这意味着与在64位上运行的相同应用程序相比,在32位上运行的.NET应用程序将能够在列表中保存两倍的引用类型项.这非常令人惊讶.
有谁知道这个限制是否在CLR 4.0中得到解决(目前我手头没有安装4.0).
首先,我之前设法让我的64位测试网络应用程序之一在这台机器上运行(当我为这个项目进行原型设计时).我已经在32位工作了几个星期,并意识到我需要将应用程序切换到64位,当我做(在项目中将目标平台设置为x64)并重新部署时,它停止运行.
我上次花了好几天才得到64位工作,而且我不确定这次我错过了什么.
我正在IIS下发布和调试.
我收到BadImageFormatException消息:"无法加载文件或程序集'GEMS.Web'或其依赖项之一.尝试加载格式不正确的程序."
此应用程序引用64位和32位程序集.我在IIS的应用程序池中将"启用32位应用程序"设置为true.
我正在使用运行在64位Win 7机器上的VS.NET 2012,IIS 7.5.
以下是来自装配负载的跟踪:
Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable C:\Windows\SysWOW64\inetsrv\w3wp.exe
--- A detailed error log follows.
=== Pre-bind state information ===
LOG: User = XXXXXX\xxxxxx
LOG: DisplayName = GEMS.Web
(Partial)
WRN: Partial binding information was supplied for an assembly:
WRN: Assembly Name: GEMS.Web | Domain ID: 2
WRN: A partial bind occurs when only part of the assembly display name is provided.
WRN: This might result in the binder loading an …Run Code Online (Sandbox Code Playgroud)