【问题标题】:Why would a WMI query fail sometimes, but not others?为什么 WMI 查询有时会失败,而其他时候不会?
【发布时间】:2012-08-30 19:45:20
【问题描述】:

我从应用程序的两个不同位置运行相同的代码。我知道它是相同的代码,因为它在一个类中,而该类只有一个面向公众的函数。两个地方都使用相同的参数调用函数,并且都在 UI 线程中运行。

该函数使用异步 WMI 查询按名称搜索特定打印机-->

            var searcher =
                new ManagementObjectSearcher(
                    "SELECT * from Win32_Printer WHERE Name LIKE '%ZDesigner GX430t'");

            // Create an observer to trigger a callback when the search is completed.
            var watcher = new ManagementOperationObserver();
            watcher.Completed += PrinterSearchCompleted;
            watcher.ObjectReady += PrinterSearchReady;

            // Look for the printer
            _printerFound = false;
            _searchCompleted = false;
            searcher.Get(watcher);

我遇到的问题是,当我从一个位置运行 ObjectReady 事件时,它没有被触发,而当我从另一个位置运行它时,它一直被触发。

另外,另一个问题是这似乎是特定于计算机的;我运行它的一些计算机工作得很好,其他的则表现出我上面描述的问题。

任何想法我应该寻找什么?

【问题讨论】:

  • 在“坏”计算机上搜索并运行 MS WMI 诊断实用程序,并修复/重建任何有问题的计算机。这个链接也可能有帮助-myitforum.com/cs2/blogs/jgilbert/archive/2008/01/11/…
  • 你有没有机会运行上面提到的工具?
  • 对不起,我没有。我被转移到另一个项目,没有时间这样做。我应该有机会在某个时候再做一次,所以我一定会尝试的。当我知道更多时,我会更新这个。

标签: printing wmi wmi-query zebra-printers


【解决方案1】:

要尝试的几件事:

  • 检查 WMI 服务是否在所有计算机上运行。
  • 在 WMI 服务不工作的计算机上重新启动它。

您可能会发现这个article 很有用。

如果是 Windows 7 或 Windows Server 2008 R2 服务器,则 WMI 存在内存泄漏问题。检查this

【讨论】:

    猜你喜欢
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多