2010-09-09 49 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 :)是超級管理員的用戶。我只是添加管理員和用戶組權限,現在我可以獲得信息!