C# 代码重启windows服务

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

C# 代码重启windows服务的更多相关文章

  1. C&num;代码安装Windows服务(控制台应用集成Windows服务)

    最近在为一款C/S架构的科研软件开发云计算版,需要用到WCF,考虑到不需要什么界面以及稳定性,无人值守性,准备用Windows Service作为宿主,无奈Windows Service的安装太为繁复 ...

  2. 通过C&num;来开启、关闭、重启Windows服务

    通过C#开启服务需要这个C#程序有相应权限,比如服务的账户是Local System的就必须以管理员权限运行C#程序才能开启或关闭. 这里只写重启的方式(就是先关闭,后开启): // Security ...

  3. C&num;代码安装Windows服务

    using System;using System.Collections.Generic;using System.ServiceProcess;using System.Configuration ...

  4. ASP&period;NET 下使用特定身份完成windows服务的功能操作

    今天部署项目的发现一个问题: 在本地Win7系统下利用Web页面完成Windows服务的功能操作(启动.停止.安装.卸载)都是正常的,而部署到Server2008系统下,再使用Web页面完成windo ...

  5. 第十三篇 一个安装、管理windows服务的桌面程序

    在网上看到一个修改程序入口的程序去把windows 服务修改成控制台的程序,然后利用控制台的程序把服务安装和管理,也想起自己原来也写了一个对windows 报务管理的程序,不过是winform的.   ...

  6. &lbrack;转帖&rsqb;以Windows服务方式运行&period;NET Core程序

    以Windows服务方式运行.NET Core程序 原作者blog:https://www.cnblogs.com/guogangj/p/10093102.html 里面使用了NSSM 工具 但是自己 ...

  7. 连表查询都用Left Join吧 以Windows服务方式运行&period;NET Core程序 HTTP和HTTPS的区别 ASP&period;NET SignalR介绍 asp&period;net—WebApi跨域 asp&period;net—自定义轻量级ORM C&num;之23中设计模式

    连表查询都用Left Join吧   最近看同事的代码,SQL连表查询的时候很多时候用的是Inner Join,而我觉得对我们的业务而言,99.9%都应该使用Left Join(还有0.1%我不知道在 ...

  8. &period;net core 部署到windows服务上的方法

    前言 Net core 项目部门在Windows有很多种方式,大致有以下几种, dotnet 命令, iis(windowshosts), 一些开源的应用容器(docker ) 基于一些exe 程序, ...

  9. C&num;创建、安装一个Windows服务

    关于WIndows服务的介绍,之前写过一篇: http://blog.csdn.net/yysyangyangyangshan/article/details/7295739.可能这里对如何写一个服务 ...

随机推荐

  1. Android开发自学笔记&lpar;Android Studio&rpar;&mdash&semi;4&period;界面编程与View组件简单介绍

    一.引言 Android应用开发最重要的一份内容就是界面的开发,无论你程序包含的内容多么优秀,如若没有一个良好的用户交互界面,最终也只是会被用户所遗弃.Android SDK提供了大量功能丰富的UI组 ...

  2. Unity3D Player角色移动控制脚本

    1. 简介 在Unity3D中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position.之前写过类似的文章,这次增加了平时常用API的脚本,每个脚本均手打测试可用. 2. ...

  3. VS Code前端开发利器-常用快捷键

    1.Ctrl+N ,新建文件,新建文件后需要先进行保存(Ctrl+S)并设置文件扩展名: 2.! +Tab,快速创建H5框架,文件扩展名必须为html: 3.Ctrl+Shift+P ,调出命令列表, ...

  4. u-boot board&lowbar;uart&lowbar;init流程

    /** ****************************************************************************** * @author    Maox ...

  5. HashMap 1&period;8

    1.重要参数 和1.7中的相同,不在赘述.变化之处在于table不在是Entry类型而是Node类型,即1.8中拉链法中的节点类型变为Node.但其实结构并没有发生很大的变化,1.8中的HashMap ...

  6. Android 下拉刷新上拉加载PullToRefresh

    https://github.com/823546371/PullToRefresh http://www.jianshu.com/p/0f5d0991efdc

  7. Tuple解决在视图中通过razor获取控制器传递给视图的匿名对象的报错问题

    C#的编译器总是将匿名类型编译成internal的,当在视图中直接使用控制器传递的匿名对象时就会报错错误代码:控制器代码视图代码执行结果: ****************************** ...

  8. 分布式ID生成器PHP&plus;Swoole实现&lpar;上&rpar; - 实现原理

    1.发号器介绍 什么是发号器? 全局唯一ID生成器,主要用于分库分表唯一ID,分布式系统数据的唯一标识. 是否需要发号器? 1)是否需要全局唯一. 分布式系统应该不受单点递增ID限制,中心式的会涉及到 ...

  9. GNU C编译器的gnu11和c11

    国际标准组织发布c11后,gnu为自己的编译器发布两种标准gnu11和c11 gnu11:带gnu c扩展的c11标准,如果你的代码包含了typeof,__attribute__等等gnu的扩展,就必 ...

  10. 洛谷P3926 SAC E&num;1 - 一道不可做题 Jelly【模拟&sol;细节】

    P3926 SAC E#1 - 一道不可做题 Jelly [链接]:https://www.luogu.org/problem/show?pid=3926 题目背景 SOL君(炉石主播)和SOL菌(完 ...