Windows Service 之 详解(二)
一、创建 Windows 服务程序
1、文件 → 新建 → 项目 → 选择 Windows 服务模板,创建 WinService 项目;
选择这个服务的属性,可以打开属性对话框。可配置如下值:
[1] AutoLog 指定把启动和停止服务的事件自动写到事件日志中;
[2] CanPauseAndContinue、CanShutdown 和 CanStop 指定服务可以处理暂停、继续、关闭和停止服务的请求;
[3] ServiceName 是写到注册表中的服务的名称,使用这个名称可以控制服务;
[4] CanHandleSessionChangeEvent 确定服务是否能处理终端服务器会话中的改变事件;
[5] CanHandlePowerEvent 选项对运行在笔记本电脑或移动设备上的服务有效。如果启用这个选项,服务就可以响应低电源事件,并相应的改变服务的行为。
注意:在服务开发的初始阶段,一定要在属性窗口把服务的名称改为比较适当的名称。
二、添加服务安装程序
切换到服务程序设计试图,右键 → 添加安装程序,给服务添加安装程序。使用 “ 添加安装程序 ”选项时,新建一个 ProjectInstaller 类、一个ServiceInstaller 实例 和 一个 ServiceProcessInstaller 实例。
1、安装程序类
ProjectInstaller 类派生自 System.Configuration.Install.Installer,后者是所有自定义安装程序的基类。
2、ServiceProcessInstaller 类 和 ServiceInstaller 类
在 InitializeComponent() 方法的实现代码中,创建了 ServiceProcessInstaller 类 和 ServiceInstaller 类的实例。这两个类都派生于 ComponentInstaller 类本身派生于 Installer 类。
注意:一个服务进程可以包括多个服务。ServiceProcessInstaller 类用于配置进程,为这个进程中的所有服务定义值,而 ServiceInstaller 类用于服务的配置,因为每个进程都需要 ServiceInstaller 类的一个实例。如果进程中有3个服务,则必须添加3个 ServiceInstaller 对象。
3、ServiceInstallerDialog 类
System.ServiceProcess.Design 名称空间中的另一个安装程序类是 ServiceInstallerDialog。在安装过程中,如果希望系统管理员输入该服务应使用的账户(具体方法是指用户名和密码),就可以使用这个类。
4、安装 和 卸载服务
(一)安装命令安装
使用 installutil.exe 实用程序:
[1] 安装命令:installUitl 服务名.exe,如下:
[2] 卸载命令:installUitl /u 服务名.exe
(二)安装程序安装
1、添加安装程序:解决方案(右击)→ 添加 → 新建项目 → 其他项目类型 → 安装和部署 → Visual Stadio Installer → 安装项目 如图 :

3、由于我们是安装服务,就不需要用户桌面和程序菜单了,直接 应用程序文件夹(右击)→ 添加 → 项目输出 入图 :
注意:
[1] 项目选择中选择要安装的服务;[2] 项目选择下面要选择主输出。选择好后确定,这一步增加了安装程序的文件夹,下一步就是给这个安装程序增加操作。
4、这里增加两个基本操作,一个是安装,一个是卸载。安装项目(右击) → 视图 → 自定义操作 如图:
上面可以看到有安装,提交,回滚,卸载等操作,我们先增加安装操作,安装(右击)→ 添加自定义操作, 如图:
选择应用程序文件夹,并选中之前增加的主输出项,确定,这样这个安装程序就增加了安装的操作,同样按照这样的方式增加卸载操作,卸载与安装唯一不同的是需要设置一个命令参数,不可少,如图:
这里 Arguments 里输入 /u 表示卸载命令相当于 InstallUtil.exe /u 服务路径 , 到这里 ,安装程序就制作好了,生成安装程序项目,将会生成 setup.exe 和 setup.msi 安装文件,拷贝到客户端,点击setup.exe 就像安装QQ一样安装我们的服务。
Windows Service 之 详解(二)的更多相关文章
- NetCore Selfhost,IIShost,Windows Service Host详解(自宿主、宿主在IIS,宿主在Windows Service中)
第一部分.自托管 一.依赖.Net Core环境 修改 project.json 文件内容,增加发布时需要包含文件的配置内容(NetCore2.0版本不需要任何设置,NetCore2.0开始彻底放弃p ...
- Windows Service 之 详解(一)
一.Windows 服务简介 Windows 服务是可以在系统启动时自动打开的(不需要任何人登录计算机)的程序. 1.适合创建Windows 服务的场景: [1] 在没有用户交互操作的情况下运行程序: ...
- windows socket函数详解
windows socket函数详解 近期一直用第三方库写网络编程,反倒是遗忘了网络编程最底层的知识.因而产生了整理Winsock函数库的想法.以下知识点均来源于MSDN,本人只做翻译工作.虽然很多前 ...
- Python调用windows下DLL详解
Python调用windows下DLL详解 - ctypes库的使用 2014年09月05日 16:05:44 阅读数:6942 在python中某些时候需要C做效率上的补充,在实际应用中,需要做部分 ...
- 爬虫入门之urllib库详解(二)
爬虫入门之urllib库详解(二) 1 urllib模块 urllib模块是一个运用于URL的包 urllib.request用于访问和读取URLS urllib.error包括了所有urllib.r ...
- 重装Windows系统 入门详解 - 基础教程
重装Windows系统 入门详解 - 基础教程 JERRY_Z. ~ 2020 / 10 / 13 转载请注明出处!️ 目录 重装Windows系统 入门详解 - 基础教程 一.说明 二.具体步骤 ( ...
- windows 安装Git详解
windows 安装Git详解 一.Git简介 Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Lin ...
- Shiro 安全框架详解二(概念+权限案例实现)
Shiro 安全框架详解二 总结内容 一.登录认证 二.Shiro 授权 1. 概念 2. 授权流程图 三.基于 ini 的授权认证案例实现 1. 实现原理图 2. 实现代码 2.1 添加 maven ...
- Android中Service(服务)详解
http://blog.csdn.net/ryantang03/article/details/7770939 Android中Service(服务)详解 标签: serviceandroidappl ...
随机推荐
- ASP.NET MVC之Html.RenderAction
WEB窗体模式开发惯了,切入MVC模式,好多东西都不懂,每一步都要查资料. 初步得来的一些知识点体会是: _Layout.cshtml就相当于母版页 然后partical视图(部分视图)就是用户控件. ...
- Oracle创建用户及表空间 代码片段
create tablespace testdatalogging datafile 'D:\oracle\oradata\orcl\testdata.dbf' size 50m autoextend ...
- 你想成为优秀的Java程序员吗?
Java是全世界最受欢迎的3大编程语言之一,它可以开发出许多实用的WEB应用程序和桌面应用程序,更重要的一点,Java是跨平台的语言——编写一次,可以再任何地方运行.另外,Java也很容易入门,如果你 ...
- 第二百五十二天 how can I 坚持
明天就要去旅游了...还不知道去哪呢,只知道要滑雪,要泡温泉,还要去西柏坡..哈哈. 其他没什么了吧.只是昨晚刷的鞋还没干,不知道明天会不会干,明天还得早走会,九点之前就得到. 还不知道坐车坐多长时间 ...
- homework-04 单词方阵
问题描述 本次作业的题目要求利用给定的一组单词生成一个矩阵,矩阵的每个位置由一个字母填充,单词表中的每一个单词可以匹配矩阵中一段连续的序列,这段序列可以是横向,纵向或者是45度斜角方向,单词可以由左向 ...
- Shell中的变量
一.什么是变量 变量在 bash 环境中是非常重要的,简单的说,就是让某一个特定字符串来代表不固定的内容.举例: 那就是:『 y = ax + b 』这东西,在等号左边的(y)就是变量,在等号右边的( ...
- Foreach与Random
[记忆贴] 1)foreach语句可以用于数据或者其他任何Iterable,但是并不意味着数组肯定也是一个Iterable,而任何自动包装也不会自动发生. package thinking.in.ja ...
- nyoj 127 星际之门(一)
星际之门(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 公元3000年,子虚帝国统领着N个星系,原先它们是靠近光束飞船来进行旅行的,近来,X博士发明了星际之门 ...
- codeforces 624B Making a String
Making a String time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- 神经网络环境搭建,windows上安装theano和keras的流程
今天碰到有朋友问道怎么在windows下安装keras,正好我刚完成搭建,总结下过程,也算是一个教程吧,给有需要的朋友. 步骤一:安装python. 这一步没啥好说的,下载相应的python安装即可, ...