我不确定我是否能够正确解释这个问题。但基本上我正在使用 32 位 Windows XP 将 asp.net 应用程序部署到 64 位 Windows Server。我猜 IIS 服务器是 64 位进程。asp.net 应用程序可以使用 64 位服务器允许的所有内存吗?或者它最多只使用 4 GB。
答案1
由于 asp.net 启用了 JIT,因此它会根据页面请求在 Web 服务器上进行 JIT 编译。这意味着它应该可以毫无问题地利用服务器上的所有资源。
答案2
.net 应用程序默认在任何环境中运行(32 位或 64 位)。可以在项目属性中强制使用平台
Build -> Platform Target: Any CPU, x86, x64
强制 x86 将使 .net 程序集即使在 64 位机器上也以 32 位模式运行。默认构建选项是任何 CPU。
因此,只要您的项目运行任何 CPU,它就会在 64 位操作系统上自行升级到 64 位模式并进行适当的内存访问。
答案3
我不是 .NET 专家,而且我也已经有一段时间没有使用预编译二进制文件了,因此对此持保留态度。
我的理解是有点。应用程序本身将无法寻址大于 32 位的内存空间。但是,操作系统应启用地址转换,以允许该块存在于操作系统地址空间中的任何位置。因此,应用程序将无法寻址比它本来可以寻址的更多的空间,但将有更多的 RAM 可用于寻址。
那有意义吗?
答案4
简而言之,32 位应用程序可以寻址 4GB RAM,仅此而已。(我同意......)
但是我几年前就已经说过 x86 可以扩展到 64 位,但这是一个很长的故事......