C#创建Windows服务与服务的安装、卸载
作者:.NET开发菜鸟 发布时间:2022-12-25 00:46:58
Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这种服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。
一、使用C#创建Windows service步骤:
1、文件->新建->项目:选择Windows服务,修改项目名称和位置,然后点击"确定":
2、在默认生成的服务Service1设计界面上右键,选择“属性”,打开属性面板
3、在打开的属性面板中,修改常用属性:
Name:后台代码类的名称。
AutoLog:设为true,自动将事件写入到Windows的事件日志中,可以在事件查看器中查看日志
CanPansuAndContinue:设为True,表示服务可以暂停和继续
4、添加服务安装程序:在Service1的设计界面点右键,选择“添加安装程序”
5、在生成的“ProjectInstaller设计界面”修改属性
5.1 选中serviceProcessInstaller1点右键,选择“属性”,打开serviceProcessInstaller1的属性面板:
Account:指示用来运行此服务的账户类型,默认选择User,修改为高权限的LocalSystem
5.2 选中serviceInstaller1点右键,选择“属性”,打开serviceInstaller1的属性面板
ServiceName:在Windows服务里面显示的名称
Description:在Windows服务里面显示的描述信息
StartType:指示启动此服务的方式和时间 Manual:手动启动 Automatic:自动启动
DelayedAutoStart:指示服务是否延时启动,默认false,改为True,则表示服务延时启动
6、重新生成解决方案,Windows服务创建完成。
二、安装和卸载Windows服务
方式一、使用DOS命令行安装:必须以管理员身份运行DOS命令行,否则安装过程中会因为权限的问题导致安装失败。
在命令行下面执行“installutil+生成的可执行文件的路径”的命令进行安装
输入命令以后,按回车,进行安装:
出现此界面表示服务安装成功。在系统服务里面查看新安装的服务:
卸载Windows服务:
在命令行里面输入“installutil /u 可执行文件路径”命令,然后回车
C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil /u F:\练习\Windows服务\WindowsServiceDemo\WindowsServiceDemo\bin\Debug\WindowsServiceDemo.exe
在系统服务里面刷新,找不到刚才的MyFirstService服务了。
方式二:使用批处理文件(.bat)安装服务
1、新建txt文本文件。
2、编辑新建的文本文件:
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe F:\练习\Windows服务\WindowsServiceDemo\WindowsServiceDemo\bin\Debug\WindowsServiceDemo.exe
pause
3、保存文件文件,修改文件后缀名为.bat,重命名文本文件:Install.bat。
使用批处理文件(.bat)卸载服务
1、新建txt文本文件。
2、编辑新建的文本文件:
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u F:\练习\Windows服务\WindowsServiceDemo\WindowsServiceDemo\bin\Debug\WindowsServiceDemo.exe
pause
3、保存文件文件,修改文件后缀名为.bat,重命名文本文件:Uninstall.bat。
注意:执行批处理文件都是以管理员身份运行
方式三:使用vs自带的外部工具安装
1、以管理员身份运行visual studio,打开解决方案,选择菜单栏的“工具”->"外部工具",打开外部工具界面:
2、点击添加,添加安装程序
标题:InstallService
命令:C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe
参数:点击“箭头按钮”,选择目标文件名,注意:选择目标文件名以后要加上文件的扩展文件名
初始目录:点击“箭头按钮”,选择目标文件目录
3、最后的InstallService命令应该是下面这样:
4、点击应用、确定按钮,保存配置。
5、点击菜单栏的工具选项,可以看见新添加的"InstallService"命令
6、点击“InstallService”命令,开始安装,输出界面会显示安装信息:
7、至此,服务安装成功,在系统服务界面可以查看到新安装的服务。
来源:https://www.cnblogs.com/dotnet261010/p/6179480.html


猜你喜欢
- Ajax本质上和普通的HTTP请求是一样的,只不过普通的HTTP请求是给人看的,而Ajax请求是给JS代码去用的。所以Ajax请求的页面一般
- 1、前言Android Studio对模块化开发提供的一个很有用的功能就是可以在主项目下新建库项目(Module),但是在使用库项目时却有一
- 本文实例讲述了Android利用BitMap获得图片像素数据的方法。分享给大家供大家参考,具体如下:网上看到的参考是:int[] pixel
- 二维码是什么二维码 QR Code,全称为:Quick Response Code,最早用于日本汽车制造业追踪零部件。QR现有40个标准版本
- 什么是过滤器过滤器 Filter 基于 Servlet 实现,过滤器的主要应用场景是对字符编码、跨域等问题进行过滤。Servlet 的工作原
- 本文实例讲述了Android编程开发之在Canvas中利用Path绘制基本图形的方法。分享给大家供大家参考,具体如下:在Android中绘制
- 本文实例讲述了C#读取系统字体颜色与大小的方法。分享给大家供大家参考。具体分析如下:首先,说到字体、颜色,我们应该想到System.Draw
- 一:背景1. 讲故事周五下午运营反馈了一个紧急bug,说客户那边一个信息列表打不开,急需解决,附带的日志文件也发过来了,看了下日志大概是这样
- 本文实例讲述了Java类加载器和类加载机制。分享给大家供大家参考,具体如下:一 点睛1 类加载器负责将.class文件(可能在磁盘上,也可能
- 目录前言令牌中继令牌难道不能在Feign自动中继吗?实现令牌中继InheritableThreadLocal实现令牌中继总结前言在Sprin
- 面试官经常喜欢问Spring中的bean是不是线程安全的这个问题用来考察对Spring 中Bean作用域的理解,先说结论,Spr
- 在现在的项目中,较多的使用到二维码,前面介绍过一篇使用Gma生成二
- 正文:相关术语翻译说明:Mark,标记;Sweep,清除;Compact,整理; 也有人翻译为压缩,译者认为GC时不存在压缩这回事。Copy
- 首先我们要知道,主要系统服务都是在 SystemServer 启动的,蓝牙也是如此:1、SystemServer源码路径:/framewor
- 在 MyEclipse 的可视化 Swing 中,有 JTable 控件。JTable 用来显示和编辑常规二维单元表。那么,如何将 数据库S
- 代码注释是架起程序设计者与程序阅读者之间的通信桥梁,最大限度的提高团队开发合作效率。也是程序代码可维护性的重要环节之一。所以我们不是为写注释
- 属性属性是一种成员,它提供灵活的机制来读取、写入或计算私有字段的值。属性可用作公共数据成员,但它们实际上是称为“访问器”的特殊方法。这使得可
- 本文实例讲述了Java设计模式之享元模式。分享给大家供大家参考,具体如下:解释一下概念:也就是说在一个系统中如果有多个相同的对象,那么只共享
- ThymeleafThymeleaf是最近SpringBoot推荐支持的模板框架,官网在thymeleaf.org这里。我们为什么要用Thy
- 实现效果:先看下效果:需求是 滑动列表 ,其中一部分视图(粉丝数,关注数这一部分)在滑动到顶端的时候不消失,而是停留在整个界面头部。我们先分