zoukankan      html  css  js  c++  java
  • C#检验Windows Service是否存在和启动

    检验某个Service是否存在:

    using System;
    using System.ServiceProcess;
    using System.Windows.Forms;
    
    private static bool IsExistSqlServer(string serviceName)
            {
                bool result = false;
                ServiceController[] controllers = ServiceController.GetServices();
                int nNum = controllers.Length;
                try
                {
                    for (int i = 0; i <= (nNum - 1); i++)
                    {
                        if ((controllers[i].ServiceName.ToUpper() == serviceName.ToUpper()))
                        {
                            result = true;
                            break;
                        }
                    }
                }
                catch(Exception e)
                {
                    Helper.Write(e.Message);
                    result = false;
                }
                return result;
            }

    其中:类ServiceController的说明:

    表示 Windows 服务并允许连接到正在运行或者已停止的服务、对其进行操作或获取有关它的信息。

    public static ServiceController[] GetDevices(string machineName)

    说明: 检索本地计算机上的所有服务(设备驱动程序服务除外)。 返回结果: System.ServiceProcess.ServiceController 类型的数组,其中每个元素均与本地计算机上的一个服务关联。

    启动一个Windows服务

     1  private static bool IsStartService(string serviceName)
     2         {
     3             ServiceController[] controllers = ServiceController.GetServices();
     4             int nNum = controllers.Length;
     5             try
     6             {
     7                 for (int i = 0; i <= (nNum - 1); i++)
     8                 {
     9                     Application.DoEvents();
    10                     if ((controllers[i].ServiceName.ToUpper() == serviceName.ToUpper()))
    11                     {
    12                         if ((controllers[i].Status != ServiceControllerStatus.Running))
    13                         {
    14                             if ((controllers[i].Status != ServiceControllerStatus.Running))
    15                             {
    16                                 controllers[i].Start();
    17                             }
    18                             controllers[i].WaitForStatus(ServiceControllerStatus.Running);
    19                         }
    20                         return true;
    21                     }
    22                 }
    23                 return true;
    24             }
    25             catch(Exception e)
    26             {
    27                 Helper.Write(e.Message);
    28                 return false;
    29             }
    30         }

    其中:

    public void Start() --启动服务,不传递任何参数。

    WaitForStatus:无休止的等待服务达到指定状态。
  • 相关阅读:
    Android之旅 自我图示总结四大组件
    解决.NET 调用JAVA WEBService服务中文乱码问题
    【itercast OSI 七层网络模型 学习笔记】Layer 1 物理层
    用SDL库播放yuy2 Packed mode
    uva539 卡坦岛 简单回溯!
    Zookeeper CLI
    在安装ZooKeeper之前,请确保你的系统是在以下任一操作系统上运行
    Zookeeper leader选举
    Zookeeper 工作流
    ZooKeeper的架构
  • 原文地址:https://www.cnblogs.com/qinlixue/p/2913578.html
Copyright © 2011-2022 走看看