C#编写Windows服务
1.新建项目:Windows服务
2.默认创建一个Service1.cs文件,切换到“代码视图”,如下图所示:
3.编写功能
在 void OnStart(string[] args) 方法中,编写服务启动时要执行的代码;
在 void OnStop() 方法中,编写服务停止时要执行的代码;
protected override void OnStart(string[] args) { FileStream fs = new FileStream(@"F:\test\ServiceTest.txt", FileMode.OpenOrCreate, FileAccess.Write); StreamWriter sw = new StreamWriter(fs); sw.BaseStream.Seek(0, SeekOrigin.End); sw.WriteLine("Service OnStart" + DateTime.Now.ToString() + "\n"); sw.Flush(); sw.Close(); fs.Close(); } protected override void OnStop() { FileStream fs = new FileStream(@"F:\test\ServiceTest.txt", FileMode.OpenOrCreate, FileAccess.Write); StreamWriter sw = new StreamWriter(fs); sw.BaseStream.Seek(0, SeekOrigin.End); sw.WriteLine("Service OnStop" + DateTime.Now.ToString() + "\n"); sw.Flush(); sw.Close(); fs.Close(); }
4. 添加安装程序
在service的设计界面,空白处,右键,选择“添加安装程序”
会自动创建“ProjectInstaller.cs”文件:
分别设置“serviceProcessInstaller1”、“serviceInstaller1”两个组件的属性:
保存,编译生成。
5.安装与卸载服务
在本地计算机:C:\Windows\Microsoft.NET\Framework\v4.0.30319\ 目录下,找到“InstallUtil.exe”文件,把它拷贝到上述生成的应用程序所在的目录。
创建文本文件,并重命名为“安装服务.bat”,编辑内容:
%~dp0InstallUtil.exe %~dp0WinService_Test.exe
pause
创建文本文件,并重命名为“卸载服务.bat”,编辑内容:
%~dp0InstallUtil /u %~dp0WinService_Test.exe
pause
其中“WinService_Test.exe”为上述生成的window服务应用程序。将这两个bat文件也放到生成的应用程序所在的目录下
注意,上述目录的路径中不能有空格
6.运行“安装服务.bat”
7. 运行“卸载服务.bat”