ManagementException:找不到

时间:2015-07-14 12:04:22

标签: vb.net windows-server-2003

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

该程序扫描产品,启动另一个程序(如果它还没有为当前用户运行)处理某些处理,然后完成一些额外的处理。我遇到的一个问题是检查第二个程序是否已经运行。我已经尝试了很多不同的代码,但这是我所确定的,因为它似乎工作得很好。

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:我完全忘记了这一点,但是I have a previous question关于这个问题。我最初查询了当多个用户同时尝试查询时似乎导致错误的所有进程。这可能是同样的问题,只是窗口小得多。任何意见都非常感谢。

0 个答案:

没有答案