一、概述
本文旨在简单论述如何开发Windows服务程序。
服务名称:ServiceTest
实验环境:VS2015
最终程序结构:
二、步骤
1、创建一个项目,选择Windows 服务,更改项目名称为Study.WindowsServiceTest
2、添加安装程序
将Service1.cs重命名为ServiceTest.cs,双击打开,右键界面空白,选择【添加安装程序】
3、配置安装程序
右键serviceInstaller1,更改ServiceName属性为ServiceTest
右键serviceProcessInstaller1,更改Account属性为LocalSystem
4、编写服务逻辑
编写ServiceTest后台代码逻辑
这里简单的输出日志信息
namespace Study.WindowsServiceTest { public partial class ServiceTest : ServiceBase { private ILog _logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); public ServiceTest() { InitializeComponent(); } protected override void OnStart(string[] args) { _logger.Debug("ServiceTest Starting !!!"); } protected override void OnStop() { _logger.Debug("ServiceTest Stopping !!!"); } } }
5、编写安装、卸载服务脚本
Install.bat
%SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe WindowsServiceTest.exe Net Start ServiceTest sc config ServiceTest start= auto
Uninstall.bat
%SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe /u WindowsServiceTest.ex
注意:使用环境变量的%SystemRoot%一定要保证文件编码是ANSI格式的,否则会由于乱码而找不到installutil命令。当然可以使用绝对路劲。
6、调试
利用VS2015的附加进程功能测试
之后可以建立断点进行测试
注意:调试的时候要保证生成的服务程序是debug模式下生成的,同时设置当前模式是debug模式,否则会跳过断点。