IIS 和控制台应用程序上的可用虚拟内存

AvailableVirtualMemory on IIS and Console application

我在 IIS 和控制台应用程序中获取 AvailableVirtualMemory 的实际值时遇到问题,详情如下:

当我在控制台应用程序上 运行 这些命令时:

Console.WriteLine(String.Format("Memoria virtual total: {0}MB", My.Computer.Info.TotalVirtualMemory / 1024 / 1024))
Console.WriteLine(String.Format("Memoria virtual disponible: {0}MB", CDec(My.Computer.Info.AvailableVirtualMemory / 1024 / 1024)))

控制台显示这些结果:

Memoria virtual total: 8388607.875MB
Memoria virtual disponible: 8388028.16015625MB

但是当我在 .aspx 页面上 运行 这些命令时:

Response.Write(String.Format("Memoria virtual total: {0}MB", My.Computer.Info.TotalVirtualMemory / 1024 / 1024))
Response.Write("<br>")
Response.Write(String.Format("Memoria virtual disponible: {0}MB", CDec(My.Computer.Info.AvailableVirtualMemory / 1024 / 1024)))

页面显示了这些结果:

Memoria virtual total: 4095.875MB
Memoria virtual disponible: 3367.91796875MB

为什么在这些不同的应用程序上存在这种差异?我正在使用 64 位操作系统。 我在 Google 和这里搜索了原因,但我没有找到任何东西......
提前致谢。

您的 .aspx 页面 运行 所在站点的应用程序池(是的 IIS Express 甚至有这些)可能配置为 32 位模式,这就是它返回 4GB 和 3.3 的原因国标分别。作为一个 32 位进程,这就是它所能看到的。

如果您是 运行 Visual Studio 玩具网络服务器中的此页面,您将得到相同的结果,因为它也只有 32 位。