zoukankan      html  css  js  c++  java
  • C# 代码重启windows服务

    ServiceController service = new ServiceController("EnergyRecordService");
    protected void btnRestart_Click(object sender, EventArgs e)
        {
            try
            {
                if (service.Status == ServiceControllerStatus.Running)
                {
                    service.Stop();
                    service.WaitForStatus(ServiceControllerStatus.Stopped);
                }
                service.Start();
                service.WaitForStatus(ServiceControllerStatus.Running);
    
            }
            catch (Exception)
            {
            }
        }

    Web.Config 配置文件:

    如果配置文件不配置这个的话会报一个错误:

    Win32Exception (0x80004005): Access is denied 
    [InvalidOperationException: Cannot open EnergyRecordService service on computer '.'.]

    <system.web> 
     
    <identity impersonate="true" userName="服务器登录名" password="登录密码"/> 
     
    </system.web>

    这个例子展示了如何用C#编程实现启动、停止和重启Windows服务。

    启动服务

    下面的方法尝试通过指定的服务名称启动服务。然后等待知道服务运行或发生超时。

    public static void StartService(string serviceName, int timeoutMilliseconds)
    {
      ServiceController service = new ServiceController(serviceName);
      try
      {
        TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
     
        service.Start();
        service.WaitForStatus(ServiceControllerStatus.Running, timeout);
      }
      catch
      {
        // ...
      }
    }
    停止服务
    下面的方法尝试停止指定的服务,然后等待服务停止或发生超时。
    public static void StopService(string serviceName, int timeoutMilliseconds)
    {
      ServiceController service = new ServiceController(serviceName);
      try
      {
        TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
     
        service.Stop();
        service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
      }
      catch
      {
        // ...
      }
    }
    重启服务
    这个方法是上两个方法的合并,尝试停止服务(并等待,直到它停止)然后启动服务(直到服务运行)。指定的超时时间是两个操作合计的超时时间。
     
  • 相关阅读:
    网络通信过程
    路由表转发分析实例
    随机生成MAC地址和IP地址
    zabbix监控LAMP全教程
    linux ssh利用公钥免密登陆
    如果Mysql插入字符始终乱码怎么办?
    Windows 桌面利用 Navicat等工具连接 虚拟机Mysql
    pagefile.sys 虚拟内存
    linux常用命令---------------find
    当你使用Pycharm编译程序的时候,遇到了这个问题,该怎么办?please select a valid interpreter
  • 原文地址:https://www.cnblogs.com/qq458978/p/4517135.html
Copyright © 2011-2022 走看看