• C#Windows服务:一些方法(启动、停止等)


      前面讲述了如何创建和安装服务(创建windows服务),下面把启动、停止、判断是否启动的方法也写一下。

           /// <summary>
            /// 判断是否安装了某个服务
            /// </summary>
            /// <param name="serviceName"></param>
            /// <returns></returns>
            public static bool ISWindowsServiceInstalled(string serviceName)
            {
                try
                {
                    ServiceController[] services = ServiceController.GetServices();
    
    
                    foreach (ServiceController service in services)
                    {
                        if (service.ServiceName == serviceName)
                        {
                            return true;
                        }
                    }
    
    
                    return false;
                }
                catch
                { return false; }
            }
    

      

       /// <summary>
            /// 启动某个服务
            /// </summary>
            /// <param name="serviceName"></param>
            public static void StartService(string serviceName)
            {
                try
                {
                    ServiceController[] services = ServiceController.GetServices();
    
    
                    foreach (ServiceController service in services)
                    {
                        if (service.ServiceName == serviceName)
                        {
                            service.Start();
    
    
                            service.WaitForStatus(ServiceControllerStatus.Running, new TimeSpan(0, 0, 30));
                        }
                    }
                }
                catch { }
            }
    

      

    /// <summary>
            /// 停止某个服务
            /// </summary>
            /// <param name="serviceName"></param>
            public static void StopService(string serviceName)
            {
                try
                {
                    ServiceController[] services = ServiceController.GetServices();
    
    
                    foreach (ServiceController service in services)
                    {
                        if (service.ServiceName == serviceName)
                        {
                            service.Stop();
    
    
                            service.WaitForStatus(ServiceControllerStatus.Running, new TimeSpan(0, 0, 30));
                        }
                    }
                }
                catch { }
            }
    

      

           /// <summary>
            /// 判断某个服务是否启动
            /// </summary>
            /// <param name="serviceName"></param>
            public static bool ISStart(string serviceName)
            {
                bool result = true;
    
    
                try
                {
                    ServiceController[] services = ServiceController.GetServices();
    
    
                    foreach (ServiceController service in services)
                    {
                        if (service.ServiceName == serviceName)
                        {
                            if ((service.Status == ServiceControllerStatus.Stopped)
                                || (service.Status == ServiceControllerStatus.StopPending))
                            {
                                result = false;
                            }
                        }
                    }
                }
                catch { }
    
    
                return result;
            }
    

      原文地址:http://blog.csdn.net/yysyangyangyangshan/article/details/12126423

  • 相关阅读:
    weblogic中server的启动
    oracle connect by
    DBA常用的一些视图和sql
    查询分类并实现分类统计SQL存储过程
    从一组数据中寻找第K大的数
    一个关于StringBuilder延伸类
    总结.net的技术特性
    C#Reflection学习记录
    Asp.net 安全补丁发布
    比较无聊的while与for的较量。
  • 原文地址:https://www.cnblogs.com/CSharpLover/p/6016430.html
Copyright © 2020-2023  润新知