我不确定我是否能够正确地解释这个问题。 但基本上我正在使用Windows XP中的32位的部署asp.net应用程序到64位的Windows服务器。 我猜测的IIS服务器是64位进程。 asp.net应用程序可以使用64位服务器所允许的所有内存吗? 或者它只会使用4 GB的最大值。
由于asp.net是启用了JIT的,它将在网页服务器上按页面请求进行JIT编译。 这意味着它应该没有问题利用您的服务器上的所有资源。
.net应用程序默认情况下将运行在任何环境(32位或64位)。 在项目的属性中强制一个平台是可能的
Build -> Platform Target: Any CPU, x86, x64
强制x86将使.net程序集甚至在64位机器上以32位模式运行。 默认生成选项是任何CPU。
所以只要你的项目运行任何一个CPU,它就会自动升级到64位操作系统的64位模式和适当的内存访问。
我不是一个.NET专家,从我编写预编译的二进制文件开始,这已经有一段时间了。
我的理解是有点 。 应用程序本身将无法寻址比32位更大的内存空间。 但是,操作系统应该启用地址转换,允许该块存在于操作系统地址空间的任何地方。 所以,应用程序将无法解决更多的问题,但更多的内存将可用于解决。
那有意义吗?
简而言之,32位应用程序可以处理4GB的RAM。 ( 我同意 …)
但是几年前我已经告诉过x86可以扩展到64位,但是这是一个很长的故事。