一、概述
本文旨在简单论述如何开发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模式,否则会跳过断点。