ManagementObjectSearcher在foreach循环中迭代其对象时引发FileNotFoundExcep
本文关键字:对象 FileNotFoundExcep 迭代 foreach 循环 ManagementObjectSearcher | 更新日期: 2023-09-27 18:22:12
我试图从system.Management命名空间中获取几个类的一些系统信息,但任何使用ManagementObjectSearcher或ManagementObjectCollection集合项的尝试都会导致FileNotFoundException。
下面我介绍一段有问题的代码:
public static string GetProcessorID() {
var processorID = "";
var query = "SELECT ProcessorId FROM Win32_Processor";
var oManagementObjectSearcher = new ManagementObjectSearcher(query);
foreach (var oManagementObject in oManagementObjectSearcher.Get()) {
processorID = (string)oManagementObject["ProcessorId"];
break;
}
return processorID;
}
尝试从集合中获取下一项时,在"foreach"行中引发异常。
在windows xp professional sp3和visual studio 2008 professional的机器上观察到了这一点。我想这可能是我的cpu的问题,它是intel双核-在其他类似环境的机器上运行相同的程序非常完美。这些机器的主要区别在于cpu。
其他参数,如MACAddress和SystemDrive提供了相同的问题,这表明它可能是软件问题(WMI?)
此处描述了非常相似的问题->http://news.softpedia.com/news/XP-SP3-Win32-Processor-Class-Labels-Intel-Core-2-Duo-CPUs-Incorectly-90201.shtml但解决方案并没有解决这个问题
有什么想法吗?提前谢谢。
Dawid
我知道我的答案有点晚了,但因为这是我搜索错误时在谷歌上第一次点击,我想我放了一个链接到为我解决问题的主题。
System.Management.ManagementException:找不到
基本上,你要做的是用WMI解决你的错误。
我也有同样的问题。它不会在文字上崩溃,而是在上崩溃
oManagementObjectSearcher.Get().
检查堆栈跟踪:
System.IO.FileNotFoundException - Nie można odnaleźć określonego modułu. (Wyjątek od HRESULT: 0x8007007E)
Stack trace:
w System.Management.ThreadDispatch.Start()
w System.Management.ManagementScope.Initialize()
w System.Management.ManagementObjectSearcher.Initialize()
w System.Management.ManagementObjectSearcher.Get()
[...]
当我移动到我的计算机/右键单击/manage/services/WMI配置/右键点击/properties->时,我收到消息,消息"Win32:找不到模块"出错