2010-09-09 51 views
0

我试图制作一个web服务(WCF)来获取有关我的服务器的信息。我为WMI创建了一个可以获取有关CPU,RAM,磁盘等信息的类...IIS + WMI:无法获取所有WMI信息

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

有人能给我任何线索吗?

谢谢。

回答

0

我发现什么是错误的:

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