1、首先,用vs创建一个windows服务项目
2、创建之后就会看见如图:
3、双击Service1.cs文件——右击——查看代码 写入服务启动关闭的代码
public partial class ServiceTest : ServiceBase
{
public ServiceTest()
{
InitializeComponent();
}
// 启动服务的时候写个日志,关闭的时候再写个日志。
protected override void OnStart(string[] args)
{
using (System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\\log.txt", true))
{
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "Start.");
}
}
protected override void OnStop()
{
using (System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\\log.txt", true))
{
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "Stop.");
}
}
}
好了,一个简单的服务就完成了,下一步添加安装信息
4、双击Service1.cs文件——右击——添加安装程序
vs会自动创建一个默认名称为ProjectInstaller.cs的文件并转到相应的设计界面
默认添加两个类 serviceProcessInstaller1和serviceInstaller1,第一个主要用来设置服务所属账户,关系到服务的运行,第二个是服务信息描述,如:服务名、是否自动启动等
5、右键serviceProcessInstaller1属性,将Account属性选择为LocalSystem
右键serviceInstaller1属性,将StartType属性设为Automatic(自动启动),Description为“我的第一个windows服务”
6、全部保存后项目右击生成,选择在文件资源管理器中打开文件,找到生成的程序。(一般是在bin/Debug目录下)
由于windows服务不能通过双击直接运行,所以我们需要借助.net提供的InstallUtil.exe来安装服务。
1.管理员身份运行命令提示符 (运行cmd) cd定位到目录cd C:\Windows\Microsoft.NET\Framework\v4.0.30319(因为一般的InstallUtil.exe文件一般是安装在这个问文件夹下面的) 回车,如图:
2.之后再运行 InstallUtil.exe Path/WindowsServiceName.exe (path等于你写的服务的运行程序的目录)
7、打开windows服务管理器就能看到我们安装的服务,默认服务安装成功后不会立刻启动,需要我们手动启动
到C盘目录下找到log.txt,打开会看到我们填入的信息,说明我们做的windows服务已经成功了。
8、 1. 启动服务命令 net start ServiceName