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 { // ... } }
重启服务
这个方法是上两个方法的合并,尝试停止服务(并等待,直到它停止)然后启动服务(直到服务运行)。指定的超时时间是两个操作合计的超时时间。