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”

 

posted on 2023-07-26 17:39  云梦鸿  阅读(145)  评论(0编辑  收藏  举报