C#制作Windows service服务

Windows服务在Visual Studio 以前的版本中叫NT服务,在VS.net启用了新的名称。用Visual C# 创建Windows服务不是一件困难的事,本文就将指导你一步一步创建一个Windows服务并使用它。这个服务在启动和停止时,向一个文本文件中写入一些文字信息。

 第一步:创建服务框架 
要创建一个新的 Windows 服务,可以从VS中 "新建项目"-"Windows"-" Windows 服务(Windows Service)",给工程一个新文件名,然后点击 确定。

项目自动添加了Service1.cs类:

其中各属性的含意是:

ü         Autolog                 是否自动写入系统的日志文件

ü         CanHandlePowerEvent     服务时候接受电源事件

ü         CanPauseAndContinue          服务是否接受暂停或继续运行的请求

ü         CanShutdown 服务是否在运行它的计算机关闭时收到通知,以便能够调用 OnShutDown 过程

ü         CanStop                              服务是否接受停止运行的请求

ü         ServiceName                       服务名

 

第二步:向服务中增加功能 
Service1.cs代码文件中我们可以看到两个函数 OnStart和OnStop。

OnStart函数在启动服务时执行,OnStop函数在停止服务时执行。在这里,当启动和停止服务时,向一个文本文件中写入一些文字信息,代码如下:

protected override void OnStart(string[] args)

{

 FileStream fs = new FileStream(@"d:\mcWindowsService.txt" , FileMode.OpenOrCreate, FileAccess.Write);

StreamWriter m_streamWriter = new StreamWriter(fs);

m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);

m_streamWriter.WriteLine("mcWindowsService:         Service Started"+DateTime.Now.ToString()+"\n");

m_streamWriter.Flush();

m_streamWriter.Close();

fs.Close();

}

 

protected override void OnStop()

{

FileStream fs = new FileStream(@"d:\mcWindowsService.txt" , FileMode.OpenOrCreate, FileAccess.Write);

StreamWriter m_streamWriter = new StreamWriter(fs);

m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);

m_streamWriter.WriteLine(" mcWindowsService: Service Stopped "+DateTime.Now.ToString()+"\n");

m_streamWriter.Flush();

m_streamWriter.Close();

fs.Close();

}

 第三步: 添加安装程序类

选择Service1.cs的Design视图模式,属性栏会出现“添加安装程序”连接,双击。

这时项目中自动添加了一个新类 ProjectInstaller(安装类) ,并且有两个组件 ServiceProcessInstaller 和 ServiceInstaller。

单击 ServiceInstaller 组件并将 StartType 属性设置为适当的值:

ü         Manual      服务安装后,必须手动启动。

ü         Automatic    每次计算机重新启动时,服务都会自动启动。

ü         Disabled     服务无法启动。

将serviceProcessInstaller类的Account属性改为 LocalSystem。这样,不论是以哪个用户登录的系统,服务总会启动。

 

第四步:创建服务安装程序(做法同普通windows项目的安装程序一样)

 只需添加一下文件:

msiexec.exe(卸载文件)位于Windows\System32下
start.bat(启动服务命令):

  echo off
net start "你的服务名称"
exit

stop.bat (停止服务命令):

  echo off
net stop "你的服务名称"
exit

在"用户的程序菜单",分别制作这前三个文件的快捷方式到这里


右键单击”卸载服务“(msexec.exe对应的快捷方式)输入一串值: 

其中"/x  "后面对应和数值来自Setup项目的


 还必须在Setup右键"添加"-“自定义操作”。如下图:分别添加自定义操作,在应用程序文件夹中主输出即可.




OK,生成安装项目就可以安装了!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值