System.Management.ManagementException: не найдено - PullRequest
3 голосов
/ 23 августа 2011

Я использую следующий код:

ManagementClass oMClass = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection colMObj = oMClass.GetInstances();

который выдает это исключение:

System.Management.ManagementException: Not found 
at System.Management.ThreadDispatch.Start()
at System.Management.ManagementScope.Initialize()
at System.Management.ManagementObject.Initialize(Boolean getObject)
at System.Management.ManagementClass.GetInstances(EnumerationOptions options)
at System.Management.ManagementClass.GetInstances()

Я пошел проверить работающие службы в Windows XP и обнаружил, что служба инструментария управления Windows имеет статус «Запущено». Я попытался перезапустить службу, но это не помогло. Затем я попытался получить статус этой службы из моего запущенного кода, используя класс ServiceController:

ServiceController wpiService = new ServiceController();
wpiService.ServiceName = "Winmgmt";
string wmiStatus = wpiService.Status.ToString();
MessageBox.Show("WMI status= " + wmiStatus);

wmiStatus оценивается как «Running».

Я видел эту ошибку только на одной из нескольких машин, на которых выполнялось одно и то же программное обеспечение. Своеобразным является то, что машина месяцами работала без сбоев, а потом вдруг начала показывать эту ошибку.

Есть какие-нибудь подсказки относительно того, что может быть причиной этого?

Ответы [ 2 ]

4 голосов
/ 22 октября 2011

Я тоже столкнулся с этой проблемой.Вот один из ранее упомянутых онлайн-ресурсов, объясняющих, как можно исправить WMI: http://windowsxp.mvps.org/repairwmi.htm

Метод восстановления, похоже, отличается в разных версиях Windows, как описано на этой странице.

У меня была эта проблема ни на одной из этих версий, но на Windows Embedded Standard 2009. Поскольку Windows XP с пакетом обновления 2 (SP2) ближе всего относится к перечисленным операционным системам, именно эту я использовал:

Для Windows XP с пакетом обновления 2

Нажмите Пуск, Выполнить и введите следующую команду:

rundll32 wbemupgd, UpgradeRepository

Эта команда используется для обнаружения и исправленияПоврежденный репозиторий WMI.Результаты сохраняются в файле setup.log (% windir% \ system32 \ wbem \ logs \ setup.log).

3 голосов
/ 01 сентября 2011

Решением было восстановление WMI в Windows XP.У меня нет подробного пошагового исправления (я не тот, кто внедрил исправление), но я понимаю, что хранилище, связанное с этим сервисом, может быть повреждено, и есть утилита Windows, которая может его починить.Есть несколько интернет-ресурсов о том, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...