【问题标题】:IIS + WMI : can't get all WMI informationIIS + WMI:无法获取所有 WMI 信息
【发布时间】:2010-09-09 19:18:02
【问题描述】:

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

在 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)。

有人可以给我任何线索吗?

谢谢。

【问题讨论】:

    标签: asp.net iis wmi


    【解决方案1】:

    我发现了问题所在:

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

    【讨论】:

      猜你喜欢
      • 2011-08-06
      • 1970-01-01
      • 2017-06-23
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多