我在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虚拟总数:8388607.875MB
Memoria虚拟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虚拟总数:4095.875MB
Memoria虚拟disponible:3367.91796875MB
为什么在这些不同的应用程序中存在这种差异?我使用的是64位操作系统。
我在谷歌和这里搜索了原因,但我没有找到任何东西......
提前致谢。
答案 0 :(得分:3)
运行.aspx
页面的站点的应用程序池(以及是IIS Express甚至有这些)可能配置为32位模式,这就是为什么它分别返回4GB和3.3GB的原因。作为一个32位的过程,它可以看到。
如果您在Visual Studio玩具网络服务器中运行此页面,您将得到相同的结果,因为它也只有32位。