C#开发Windows服务(附源码DEMO)

首先是创建一个项目:

创建完后是这个样子:

然后给自己的服务改一个自己想要的名字,我这里修改成MyWindowsWeiHuService,这个同时也是服务运行时候的名字,也就是鼠标右击“我的电脑”——管理——服务和应用程序——服务 里面显示的服务名。

然后开始写代码,服务运行时,执行什么代码,服务关闭时,执行什么代码:

加入你要做的事情,是创建一个txt,然后往txt里面写点东西,代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Diagnostics;
 6 using System.Linq;
 7 using System.ServiceProcess;
 8 using System.Text;
 9 
10 namespace MyWindowsService
11 {
12     public partial class MyWindowsWeiHuService : ServiceBase
13     {
14         public MyWindowsWeiHuService()
15         {
16             InitializeComponent();
17         }
18 
19         protected override void OnStart(string[] args)
20         {
21             using (System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\我要创建的文本文档.txt", true))
22             {
23                 sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "服务开始运行.");
24             }
25 
26         }
27 
28         protected override void OnStop()
29         {
30 
31             using (System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\我要创建的文本文档.txt", true))
32             {
33                 sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "服务结束运行.");
34             }
35         }
36     }
37 }
请看代码

写完代码之后,回到设计界面,操作如下:

在设计视图,点击右键,点击“添加安装程序”

点击完“添加安装程序”后

 点击serviceInstaller1

可以写一下服务的描述

可以选择服务的启动类型

然后,点击serviceProcessInstaller1,设置一下Account 为LocalSystem

截止到目前,Windows服务的开发已经完成了。点击F5生成就行。

生成后,打开解决方案的 binDebug 文件夹,会看到生成后的文件:

服务是不能够直接双击安装的,需要在命令行里调用 installutil.exe,来安装才行,这个东西的完整路径是:%SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe

运行的命令是: %SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe  这里接着你服务的完成路径。

在本案例中,完成安装命令是 :%SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe D:软件开发测试MyWindowsServiceMyWindowsServiceinDebugMyWindowsService.exe

当你将这个命令拷贝到CMD里面运行的时候,你会发现安装不成功,用C#开发出来的windows服务安装失败。

 

出现这个问题的运用,是因为你的CMD,没有使用管理员运行。只需要用管理员运行CMD,再在CMD里面打命令,就会安装成功了。

为了方便,我们可以将安装命令做成bat文件,然后右键管理员运行bat文件,就可以了

bat文件里面的内容如下:

%SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe D:软件开发测试MyWindowsServiceMyWindowsServiceinDebugMyWindowsService.exe

pause

为什么要加上pause呢,因为不加的话,这个黑窗口会一闪而过,感觉好像中了病毒一样。

最后我们创建了一个“安装.bat”

我们右键,以管理员运行“安装.bat”

成功了,再敲一下回车,黑色窗口就会消失

我打开windows的服务管理器界面,看看

 可以看到我们维护的名字与描述。

现在服务还没有启动,我们启动服务

启动后,我们可以看到C盘下面有我们刚才创建的文件

我们现在来结束服务吧

 结束后,打开我们创建的文件看看

好的。现在我们来讲如何删除服务。

方法跟安装有点类似,也是创建一个bat文件,bat文件里面写以下内容

%SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe /u D:软件开发测试MyWindowsServiceMyWindowsServiceinDebugMyWindowsService.exe
pause

保存为“卸载.bat”

同样右键,以管理员运行

卸载成功!

 源码DEMO下载地址:https://download.csdn.net/download/jialiang88/10342170

原文地址:https://www.cnblogs.com/manbumao/p/8797620.html