public void MonitorServiceStart()
{
ServiceController cs = new ServiceController();
ServiceController cgw = new ServiceController();
try
{
cs.ServiceName = "HUAWEI SMC 2.0 MonitorManage";
cs.Refresh();
cgw.ServiceName = "HUAWEI SMC 2.0 ConvergeGateway";
cgw.Refresh();
if (cgw.Status == ServiceControllerStatus.Running || cgw.Status == ServiceControllerStatus.StartPending) //监控服务自启动的前提是CGW服务在线
{
//if (cs.Status != ServiceControllerStatus.Running && cs.Status != ServiceControllerStatus.StartPending)
if (cs.Status == ServiceControllerStatus.Stopped)
{
//Thread.Sleep(1000);
TimeSpan timeout = TimeSpan.FromMilliseconds(CgwConst.WAIT_MONITOR_SERVICE_RUNNING_MILLI_SECONDS);
cs.Start();
cs.WaitForStatus(ServiceControllerStatus.Running, timeout);
}
}
}
catch (System.Exception)
{
TimeSpan timeout = TimeSpan.FromMilliseconds(CgwConst.WAIT_MONITOR_SERVICE_RUNNING_MILLI_SECONDS);
cs.Start();
cs.WaitForStatus(ServiceControllerStatus.Running, timeout);
}
}