我正在尝试创建一个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)。
有人能给我任何线索吗?
感谢。
答案 0 :(得分:0)
我发现了什么问题:
这是一个安全问题,唯一可以访问第二个磁盘(D :)的用户是超级管理员。我只是添加管理员和用户组权限,现在我可以获得信息!