Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是在64位Windows LargeAddressware上运行的32位ASP.NET应用程序_Asp.net_32bit 64bit - Fatal编程技术网

是在64位Windows LargeAddressware上运行的32位ASP.NET应用程序

是在64位Windows LargeAddressware上运行的32位ASP.NET应用程序,asp.net,32bit-64bit,Asp.net,32bit 64bit,我有一个使用32位非托管DLL的现有32位ASP.NET应用程序 如果我在64位操作系统上运行它,它会自动成为更大的AddressWare(即可以访问全部4GB的虚拟内存)吗 如果没有,我该怎么做才能使它更大 谷歌出现了,但它没有回答上述问题 编辑 表明ASP.NET 1.1工作进程是大型Addressware,但对ASP.NET 2.0保持沉默: 如果系统以/3Gb启动 boot.ini中的开关(仅在 企业版和数据中心版 Windows 2000和所有版本的 Windows XP和Window

我有一个使用32位非托管DLL的现有32位ASP.NET应用程序

如果我在64位操作系统上运行它,它会自动成为更大的AddressWare(即可以访问全部4GB的虚拟内存)吗

如果没有,我该怎么做才能使它更大

谷歌出现了,但它没有回答上述问题

编辑

表明ASP.NET 1.1工作进程是大型Addressware,但对ASP.NET 2.0保持沉默:

如果系统以/3Gb启动 boot.ini中的开关(仅在 企业版和数据中心版 Windows 2000和所有版本的 Windows XP和Windows Server 2003)a 与 /大地址软件开关可“查看” 3Gb。Aspnet_wp.exe链接在 在版本1.1中使用,并且可以 这样做的好处

编辑2

这表明32位ASP.NET应用程序是大型Addressware,但没有提到ASP.NET版本:

我们找到了 由ASP.NET框架托管的 利用>2 gig内存 空间


我必须说,我对缺乏关于这一主题的权威性公开信息感到惊讶。

不,不会的。要使其具有大地址意识,必须将IIS作为64位应用程序运行(不使用WOW运行)。这意味着您的32位非托管DLL必须替换为64位版本的DLL

通常,当选择编译器选项以任何平台为目标(默认)时,asp.net将转换为64位应用程序。您使用的32位应用程序的问题是存在非托管32位DLL。这些不能在64位应用程序中运行。这意味着您必须以32位应用程序的形式运行ASP.NET应用程序,这意味着您必须在64位服务器上安装32位版本的IIS。避免这种情况的唯一方法是将32位非托管DLL替换为在64位环境中运行的DLL。32位应用程序无法使用64位服务器上的所有内存,因此您的应用程序将无法“查看”额外的内存


ASP.NET应用程序将在64位环境中重新编译自身(如果在编译时设置了目标any environment选项),因此它们不再是32位应用程序。

我成功访问了运行Windows 2003 SP2的服务器,答案似乎是肯定的,32位ASP.NET应用程序是大型Addressware,并且可以访问完整的4GB虚拟内存

我通过以下方式确定了这一点:

  • 使用“dumpbin/headers”检查w3wp.exe(32位IIS工作进程)。这表明设置了LargeAddressware位

  • 运行32位ASP.NET应用程序,尝试分配超过2GB的虚拟内存:这是成功的


我假设Windows 2008/IIS7的结果是一样的,但还没有测试过。

“不会的。”-谢谢。有这方面的参考资料吗?有可能改变这一点吗?我仍在寻找一篇文章。“要使其具有大地址意识,您必须将IIS作为64位应用程序运行”-这是什么意思?如果它是一个64位应用程序,它将不会在WOW64上运行,并且LargeAddressWare与此无关。