我正在尝试创建一个WCF服务(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());
}我做了一些测试,这项服务在我的电脑(装有IIS 7.5的Windows 7)上可以工作,但在我的服务器(windows server 2008)上不能工作。
有没有人能给我点提示?
谢谢。
发布于 2010-09-17 22:30:13
我发现了问题所在:
这是一个安全问题,唯一可以访问第二个磁盘(D:)的用户是超级管理员。我只需添加管理员和用户组权限,现在我就可以获取信息了!
https://stackoverflow.com/questions/3679816
复制相似问题