尝试从远程服务器获取服务时出现InvalidOperationException

时间:2015-02-23 10:54:17

标签: vb.net exception invalidoperationexception windows-server-2012-r2

我面临一个奇怪的错误。我检查服务器B上的服务器A是否正在运行特定服务。

代码示例:

        Try
        Dim services() As ServiceController = ServiceController.GetServices(server)
        For Each service In services
            If service.ServiceName = serviceName Then
                If service.Status = ServiceProcess.ServiceControllerStatus.Running Then
                    write_log("Service is running on: " & server)
                    Return True
                Else
                    Return False
                End If
            End If
        Next

    Catch ex As Exception
        write_log("ERROR on getService request")
        write_log(ex.ToString)
    End Try

大多数时候请求都是成功的。但有时我会收到错误。 堆栈跟踪:

5316    2015-02-21 07:24:47 System.InvalidOperationException: Cannot open Service Control Manager on computer 'XXXXX'. This operation might require other privileges. ---> System.ComponentModel.Win32Exception: The RPC server is unavailable
   --- End of inner exception stack trace ---
   at System.ServiceProcess.ServiceController.GetDataBaseHandleWithAccess(String machineName, Int32 serviceControlManaqerAccess)
   at System.ServiceProcess.ServiceController.GetServicesOfType(String machineName, Int32 serviceType)
   at K2SystemInfo.K2SystemInfo.CheckIfServiceIsRunning(String serviceName, String server)

在错误发生后立即重试我可以获得服务信息。启动我的程序的服务是两台服务器上的admin。

为什么ServiceController.GetServices(服务器)有时会失败。虽然它大部分工作正常吗?

仅在Windows Server 2012 R2服务器上出现此问题。在Windows Server 2008 R2上,它工作正常。

0 个答案:

没有答案