一部のお客様から、次のエラーが表示される場合があるとの連絡がありました。
System.Management.ManagementException:Błąddostawcy。
System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
at System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext()
このエラーは、System.Mamangment.ManagementObjectSearcherオブジェクトのGet()メソッドによって返されたコレクションをループしようとしたときに生成されます。
これは私のメソッドのコードです:
private bool PrinterExists(string printerName)
{
bool retVal = false;
SelectQuery q = new SelectQuery("select caption from win32_printer");
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(q))
{
foreach (ManagementObject printer in searcher.Get())
{
if(printer["Caption"].ToString() == printerName)
{
retVal = true;
break;
}
}
}
return retVal;
}
問題はWindowsXPでのみ発生するようです。私が知っている唯一の回避策は、WMIデータベースの再構築です。それは時々役に立ちますが、残念ながら常にではありません。
このエラーの理由とその修正方法を教えてもらえますか?