Window 服务程序和安装、卸载、启动、停止等操作
2013-04-17 17:17
483 查看
最近项目中用到window服务程序,以前没接触过,比较陌生,花了一天的时间学习了下,写了个简单的服务,但在制作安装程序的时候,参照网上很多资料,却都制作不成功,可能是开发环境或项目配置的不同,这里把自己成功制作的方式贴出来,一方面留给自己,一方面也希望能给遇到同样问题绝望中不能自拔、以致失去灵魂的路人甲,路人乙一还魂丹 . . .
一、创建window服务项目
首先我们建一个window服务项目 :解决方案(右击)——> 添加 ——> 新建项目——>项目类型选择Windows——>Windows服务 ,如图:
二、编写Window服务程序
创建后会生成两个文件 Program.cs 和 Service1.cs ,其中 program.cs 这个文件不用动,里面已自动生成好了。我们在Service1.cs里增加所要的操作,里面有两个重写方法 OnStart 和 OnStop ,OnStart 方法表示服务启动的操作,OnStop 表示服务停止的操作,下面写了一个简单示例 :当服务启动后,每一秒中向一个记事本文件记录信息,code如下:
到这里,我们的服务以及服务实现的功能就已经写好了,下面怎么让客户端安装我们的服务呢?先要增加一个安装程序类,切换到视图窗口,右击——>添加安装程序,便会增加一个程序安装类文件 ProjectInstaller.cs,如图:
这里serviceProcessInstaller1 和 serviceInstaller1 有几个重要属性要设置,serviceInstaller1 中的StartType要设置成Automatic,表示随机启动,ServiceName表示服务名称,Description 表示服务的描述, DisplayName 表示显示名称。
serviceProcessInstaller1 中的Account(运行此服务的帐号类型)要设置成LocalSystem,表示本地系统帐号,这样无论是哪个用户登录的系统,服务总会启动。
三. Window服务的安装
1. 使用命令符操作:我的电脑-附件-命令提示符-右击已管理员身份运行:
1.1. 安装
[align=left] 通过命令窗口,执行 InstallUtil.exe 服务路径 可安装Window服务。[/align]
[align=left] 这命令看起来是不是很长,下面教你如何看:[/align]
[align=left] 这命令符分为三段:[/align]
[align=left] 前段:c盘上.Net Framework 4.0安装的Windows下的路径。[/align]
[align=left] 中段:一个空格。[/align]
[align=left] 后段:发布后要安装的Window服务的路径。[/align]
[align=left] 上面这些路径可以直接在电脑上打开路径后,复杂,在命令符号中直接粘贴。[/align]
[align=left] [/align]
[align=left] 1.2 卸载,启动,停止[/align]
[align=left] 可直接在命令符中输入: "SC"里面有很多语法可进行操作。[/align]
[align=left] 卸载服务:sc delete '服务名称'[/align]
[align=left] 启动服务:sc start '服务名称'[/align]
[align=left] 停止服务:sc stop '服务名称'[/align]
[align=left] [/align]
[align=left] 2. 制作安装程序[/align]
[align=left] 安装程序制作 :解决方案(右击)——> 添加 ——> 新建项目 ——> 项目类型选择安装和部署 ——> 模板选择安装项目 如图 :[/align]
[align=center] [/align]
[align=left] [/align]
[align=left] 创建后,安装项目(右击) ——> 视图 ——> 文件系统 如图:[/align]
[align=left] [/align]
由于我们是安装服务,就不需要用户桌面和程序菜单了,直接应用程序文件夹(右击)——> 添加 ——> 项目输出 入图 :
上面有两点需要注意 ,一 项目选择中选择要安装的服务, 二 项目选择下面要选择主输出,选择好后确定,这一步增加了安装程序的文件夹,下一步就是给这个安装程序增加操作,这里我们增加两个基本操作,一个是安装,一个是卸载。安装项目(右击) ——> 视图 ——> 自定义操作 如图:
上面可以看到有安装,提交,回滚,卸载等操作,我们先增加安装操作,安装(右击)——> 增加自定义操作,会弹出一个对话 如图:
选择应用程序文件夹,并选中之前增加的主输出项,确定,这样这个安装程序就增加了安装的操作,同样按照这样的方式增加卸载操作,卸载与安装唯一不同的是需要设置一个命令参数,不可少,如图:
这里 Arguments 里输入 /u 表示卸载命令相当于 InstallUtil.exe /u 服务路径 , 到这里 ,我们的安装程序就已经制作好了,生成安装程序项目,将会生成 setup.exe 和 setup.msi 安装文件,拷贝到客户端,点击setup.exe 就像安装QQ一样安装我们的服务,实际上比QQ好多了,QQ还有广告,我们可是纯绿色的!
这样就可以了,不够推荐使用第一种"命令符操作",第二种测试了一下,在安装的时候有点问题,暂时还未解决,由于项目紧急,匆匆忙忙越过,呵呵,如果有谁操作成功的可以请教一下哦。
一、创建window服务项目
首先我们建一个window服务项目 :解决方案(右击)——> 添加 ——> 新建项目——>项目类型选择Windows——>Windows服务 ,如图:
二、编写Window服务程序
创建后会生成两个文件 Program.cs 和 Service1.cs ,其中 program.cs 这个文件不用动,里面已自动生成好了。我们在Service1.cs里增加所要的操作,里面有两个重写方法 OnStart 和 OnStop ,OnStart 方法表示服务启动的操作,OnStop 表示服务停止的操作,下面写了一个简单示例 :当服务启动后,每一秒中向一个记事本文件记录信息,code如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Linq; using System.ServiceProcess; using System.Text; using System.IO; using System.Threading; namespace WindowsService2010 { public partial class Service1 : ServiceBase { public Service1() { InitializeComponent(); } System.Timers.Timer time2 = new System.Timers.Timer(1000); protected override void OnStart(string[] args) { time2.Elapsed += new System.Timers.ElapsedEventHandler(Timers_Elapsed); time2.Enabled = true; } protected override void OnStop() { time2.Enabled = false; } private void Timers_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { string path="d:\\TextFile.txt"; StreamWriter sw; if (!File.Exists(path)) { sw = File.CreateText(path); } else sw = File.AppendText(path); sw.WriteLine("====================================="); sw.Write("添加日期为:" + DateTime.Now.ToString() + "\r\n"); sw.Write("日志内容为:" + "测试服务" + "\r\n"); sw.WriteLine("====================================="); sw.Flush(); sw.Close(); } } }
到这里,我们的服务以及服务实现的功能就已经写好了,下面怎么让客户端安装我们的服务呢?先要增加一个安装程序类,切换到视图窗口,右击——>添加安装程序,便会增加一个程序安装类文件 ProjectInstaller.cs,如图:
这里serviceProcessInstaller1 和 serviceInstaller1 有几个重要属性要设置,serviceInstaller1 中的StartType要设置成Automatic,表示随机启动,ServiceName表示服务名称,Description 表示服务的描述, DisplayName 表示显示名称。
serviceProcessInstaller1 中的Account(运行此服务的帐号类型)要设置成LocalSystem,表示本地系统帐号,这样无论是哪个用户登录的系统,服务总会启动。
三. Window服务的安装
1. 使用命令符操作:我的电脑-附件-命令提示符-右击已管理员身份运行:
1.1. 安装
[align=left] 通过命令窗口,执行 InstallUtil.exe 服务路径 可安装Window服务。[/align]
[align=left] 这命令看起来是不是很长,下面教你如何看:[/align]
[align=left] 这命令符分为三段:[/align]
[align=left] 前段:c盘上.Net Framework 4.0安装的Windows下的路径。[/align]
[align=left] 中段:一个空格。[/align]
[align=left] 后段:发布后要安装的Window服务的路径。[/align]
[align=left] 上面这些路径可以直接在电脑上打开路径后,复杂,在命令符号中直接粘贴。[/align]
[align=left] [/align]
[align=left] 1.2 卸载,启动,停止[/align]
[align=left] 可直接在命令符中输入: "SC"里面有很多语法可进行操作。[/align]
[align=left] 卸载服务:sc delete '服务名称'[/align]
[align=left] 启动服务:sc start '服务名称'[/align]
[align=left] 停止服务:sc stop '服务名称'[/align]
[align=left] [/align]
[align=left] 2. 制作安装程序[/align]
[align=left] 安装程序制作 :解决方案(右击)——> 添加 ——> 新建项目 ——> 项目类型选择安装和部署 ——> 模板选择安装项目 如图 :[/align]
[align=center] [/align]
[align=left] [/align]
[align=left] 创建后,安装项目(右击) ——> 视图 ——> 文件系统 如图:[/align]
[align=left] [/align]
由于我们是安装服务,就不需要用户桌面和程序菜单了,直接应用程序文件夹(右击)——> 添加 ——> 项目输出 入图 :
上面有两点需要注意 ,一 项目选择中选择要安装的服务, 二 项目选择下面要选择主输出,选择好后确定,这一步增加了安装程序的文件夹,下一步就是给这个安装程序增加操作,这里我们增加两个基本操作,一个是安装,一个是卸载。安装项目(右击) ——> 视图 ——> 自定义操作 如图:
上面可以看到有安装,提交,回滚,卸载等操作,我们先增加安装操作,安装(右击)——> 增加自定义操作,会弹出一个对话 如图:
选择应用程序文件夹,并选中之前增加的主输出项,确定,这样这个安装程序就增加了安装的操作,同样按照这样的方式增加卸载操作,卸载与安装唯一不同的是需要设置一个命令参数,不可少,如图:
这里 Arguments 里输入 /u 表示卸载命令相当于 InstallUtil.exe /u 服务路径 , 到这里 ,我们的安装程序就已经制作好了,生成安装程序项目,将会生成 setup.exe 和 setup.msi 安装文件,拷贝到客户端,点击setup.exe 就像安装QQ一样安装我们的服务,实际上比QQ好多了,QQ还有广告,我们可是纯绿色的!
这样就可以了,不够推荐使用第一种"命令符操作",第二种测试了一下,在安装的时候有点问题,暂时还未解决,由于项目紧急,匆匆忙忙越过,呵呵,如果有谁操作成功的可以请教一下哦。
相关文章推荐
- window 安装redis服务 卸载redis服务 启动redis服务 停止redis服务
- c# 服务程序安装卸载启动停止
- C#Windows Service服务程序的安装/卸载、启动/停止 桌面客户端管理程序设计
- C#对Windows服务操作(注册安装服务,卸载服务,启动停止服务,判断服务存在)
- XP下安装、启动、停止、卸载服务程序
- C# 操作windows服务[启动、停止、卸载、安装]
- C#操作注册服务卸载服务启动服务停止服务.. .
- 安装 启动 停止 卸载 Windows服务 c#
- windows服务(安装/启动/卸载/停止)批处理代码
- C#操作注册服务卸载服务启动服务停止服务.. .
- 对NT服务型程序的控制代码。如安装服务、启动、停止服务、取服务状态等。
- C# windows服务:通过cmd命令安装、卸载、启动和停止Windows Service(InstallUtil.exe)
- C# windows服务:通过cmd命令安装、卸载、启动和停止Windows Service(InstallUtil.exe)
- C#制作Windows service服务系列一:制作一个可安装、可启动、可停止、可卸载的Windows
- vs2005 以上开发windows 服务的安装,卸载启动,停止批处理
- 使用工具安装,运行,停止,卸载Window服务
- windows 10安装mysql 5.7后,启动服务提示“本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止。
- C#制作Windows service服务系列一:制作一个可安装、可启动、可停止、可卸载的Windows service
- 引擎服务程序安装,启动与卸载
- C# windows服务:通过cmd命令安装、卸载、启动和停止Windows Service(InstallUtil.exe)