Vb.net ManagementException:未找到

Vb.net ManagementException:未找到,vb.net,windows-server-2003,Vb.net,Windows Server 2003,我有一个在我们仓库的一些可穿戴终端上运行的程序。这些终端通过远程桌面连接到我们的服务器,该服务器实际上承载并运行该程序 该程序扫描产品,启动另一个程序(如果当前用户尚未运行该程序),处理一些处理,然后在完成后执行一些附加处理。我遇到的一个问题是检查第二个程序是否已经在运行。我尝试了很多不同的代码,但这是我决定的,因为它似乎工作得非常好 Private Function CheckPrintLabelRunning() As Boolean Dim selectQuery As Strin

我有一个在我们仓库的一些可穿戴终端上运行的程序。这些终端通过远程桌面连接到我们的服务器,该服务器实际上承载并运行该程序

该程序扫描产品,启动另一个程序(如果当前用户尚未运行该程序),处理一些处理,然后在完成后执行一些附加处理。我遇到的一个问题是检查第二个程序是否已经在运行。我尝试了很多不同的代码,但这是我决定的,因为它似乎工作得非常好

Private Function CheckPrintLabelRunning() As Boolean
    Dim selectQuery As String = "Select * From Win32_Process Where Name = 'vbPrintLabel.exe'"
    Dim searcher As New System.Management.ManagementObjectSearcher(selectQuery)
    Dim processList As System.Management.ManagementObjectCollection = searcher.[Get]()

    For Each obj As System.Management.ManagementObject In processList
        Dim argList As String() = New String() {String.Empty, String.Empty}
        Dim returnVal As Integer = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList))
        If returnVal = 0 Then
            If argList(0).ToString.ToUpper = Environment.UserName.ToUpper Then
                Return True
            End If
        End If
    Next

    Return False
End Function
周四,当用户在终端上使用应用程序时,我的错误日志中弹出了以下错误消息。此应用程序似乎一直在关闭自己,命中了主窗体的FormClosing事件(表明它不是完全崩溃,而是处理不当或环境崩溃?)。例外情况如下:

System.Management.ManagementException: Not found 
   at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
   at System.Management.ManagementObject.InvokeMethod(String methodName, ManagementBaseObject inParameters, InvokeMethodOptions options)
   at System.Management.ManagementObject.InvokeMethod(String methodName, Object[] args)
   at vbFullCasePicking.frmFullCasePicking.CheckPrintLabelRunning()
   at vbFullCasePicking.frmFullCasePicking.StartPrintLabelListener()
   at vbFullCasePicking.frmFullCasePicking.PrintLabel(Boolean blnSMPLabels, String strCartonID)
我想指出的是,在这个特定的问题上,应用程序并没有自行关闭,但我仍然对这个错误感到好奇,因为这是我在使用它的所有月份中第一次看到它

编辑:更多信息…应用程序运行的服务器是Windows server 2003。就我们所见,这个问题没有生成任何类型的事件日志条目


编辑2:我完全忘记了这一点,但是关于这个问题。我最初查询的是所有进程,当多个用户试图同时查询时,这些进程似乎会导致错误。那么,这可能是同样的问题,只是窗口要小得多。非常感谢您的任何输入。

几个月后才出现此错误的原因可能是与WMI服务相关的存储库最终损坏。你试过了吗?我已经更新了我的问题,因为我忘了提到,这不会生成任何事件日志条目。这不会在windows server 2003事件日志中创建一些内容吗?是的,确实会…无论如何,我们将在周五运行一个实用程序来检查损坏/丢失的文件,以确保服务器上没有任何问题(必须等到周五,因为我们所有的gun用户现在都在运行它).由于在服务器上运行了各种检查,因此没有出现这种运气。我正在采用另一种方法,将vbPrintLabel.exe中的代码移到.dll文件中,然后从终端上运行的程序中引用它。因此,我甚至不需要检查服务器上的进程列表,因此一旦实现,这应该是一个无问题的问题(不确定为什么它最初不是一个dll,但它是在我在这家公司工作之前编写的)。感谢您的输入。几个月后才出现此错误的原因可能是与WMI服务相关的存储库最终损坏。你试过了吗?我已经更新了我的问题,因为我忘了提到,这不会生成任何事件日志条目。这不会在windows server 2003事件日志中创建一些内容吗?是的,确实会…无论如何,我们将在周五运行一个实用程序来检查损坏/丢失的文件,以确保服务器上没有任何问题(必须等到周五,因为我们所有的gun用户现在都在运行它).由于在服务器上运行了各种检查,因此没有出现这种运气。我正在采用另一种方法,将vbPrintLabel.exe中的代码移到.dll文件中,然后从终端上运行的程序中引用它。因此,我甚至不需要检查服务器上的进程列表,因此一旦实现,这应该是一个无问题的问题(不确定为什么它最初不是一个dll,但它是在我在这家公司工作之前编写的)。谢谢你的意见。