IIS和控制台应用程序

时间:2015-06-11 21:54:32

标签: asp.net iis memory 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虚拟总数: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位操作系统。 我在谷歌和这里搜索了原因,但我没有找到任何东西......
提前致谢。

1 个答案:

答案 0 :(得分:3)

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

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