IIS + WMI:无法获取所有WMI信息

时间:2010-09-09 19:18:03

标签: asp.net iis wmi

我正在尝试创建一个Web服务(WCF)来获取有关我的服务器的信息。我为WMI做了一个类,可以检索有关cpu,ram,disk等的信息......

在visual studio下,该服务运行正常,但是当我在IIS上部署服务时,我获得了所有信息......除了一个!我有一个带有两个分区(C& D)的硬盘,当我部署到IIS时,当我尝试检索第二个分区的“大小”时出错。该代码适用于控制台应用程序。我也试过一个简单的ASP.Net网站而不是WCF,也没用。

以下是我使用的代码:

    ConnectionOptions aCO { get; set; }
    ManagementScope aMS { get; set; }

    public Wmi()
    {
        aCO = new ConnectionOptions();
        aMS = new ManagementScope("\\\\localhost", aCO);
    }
    .....
    ObjectQuery aQ = new ObjectQuery("select Name,Size,FreeSpace from Win32_LogicalDisk where DriveType=3");
    .....
    foreach (ManagementObject oReturn in aRToSet)
        {
                string letter = oReturn["Name"].ToString();
                long size = long.Parse(oReturn["Size"].ToString());
        }

我做了一些测试,该服务在我的计算机上运行(Windows 7使用IIS 7.5),但不在我的服务器上(Windows Server 2008)。

有人能给我任何线索吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我发现了什么问题:

这是一个安全问题,唯一可以访问第二个磁盘(D :)的用户是超级管理员。我只是添加管理员和用户组权限,现在我可以获得信息!