首先是创建一个项目:
创建完后是这个样子:
然后给自己的服务改一个自己想要的名字,我这里修改成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