C# 开发windows 服务

一、 window服务是什么

 当你单击“开始”,执行“services.msc”命令。就会看见如下窗口。它显示的是当前操作系统中系统自带的服务或者第三方软件安装的服务。服务的状态有名称、描述、启动状态、启动类型等等。你也可以在此窗体中管理相关服务,注意谨慎操作,防止系统错误或软件故障。

C# 开发windows 服务_第1张图片

二、创建一个Windows Service
1)创建Windows Service项目
C# 开发windows 服务_第2张图片C# 开发windows 服务_第3张图片

2)对Service重命名
将Service1重命名为你服务名称,这里我们命名为ServiceTest。
二、创建服务安装程序
1)添加安装程序
C# 开发windows 服务_第4张图片
C# 开发windows 服务_第5张图片
之后我们可以看到上图,自动为我们创建了ProjectInstaller.cs以及2个安装的组件。
2)修改安装服务名
右键serviceInsraller1,选择属性,将ServiceName的值改为ServiceTest。
C# 开发windows 服务_第6张图片
3)修改安装权限
右键serviceProcessInsraller1,选择属性,将Account的值改为LocalSystem。
C# 开发windows 服务_第7张图片
三、写入服务代码
1)打开ServiceTest代码
右键ServiceTest,选择查看代码。
2)写入Service逻辑
添加如下代码:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;

namespace WindowsServiceTest
{
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.");
}
}
}
}

这里我们的逻辑很简单,启动服务的时候写个日志,关闭的时候再写个日志。

四、 Windows服务的安装和卸载

方法一:cmd命令方式

单击开始,执行cmd命令。在弹出cmd窗口中安装或卸载服务。

1、 安装服务: sr start为启动服务

基本命令,如下:

%systemroot%\microsoft.net\framework\v2.0.50727\installUtil.exe E:\Demo\WindowsService\WindowsServiceTest\WindowsServiceTest\bin\Debug\WindowsServiceTest.exe
sc start "ServiceTest"

方法二:bat文件方式:

原理就是方法一,只是把安装和卸载服务的命令放到ServiceTestInstaller.bat和ServiceTestUnInstaller.bat中。而且为了减少用户自己写脚本,可以开发一个工具CreateServiceSetup.exe负责生成制定Window服务的安装和卸载脚本bat文件。

ServiceTestInstaller.bat 代码如下:

%systemroot%\microsoft.net\framework\v4.0.30319\installUtil.exe E:\Demo\WindowsService\WindowsServiceTest\WindowsServiceTest\bin\Debug\WindowsServiceTest.exe
sc start "ServiceTest"
echo ServiceTest服务安装完成! 
echo. & pause 

1、 安装服务
步骤1:双击ServiceTestInstaller.bat 安装服务,界面如下:

C# 开发windows 服务_第8张图片

步骤2:如上图,显示结果安装服务成功,接下来我们去服务管理界面,查看服务是否出现。如下图所示。开始——运行,输入 services.msc

C# 开发windows 服务_第9张图片

2、卸载服务
ServiceTestInstaller.bat 代码如下:

%systemroot%\microsoft.net\framework\v4.0.30319\installUtil.exe /u E:\Demo\WindowsService\WindowsServiceTest\WindowsServiceTest\bin\Debug\WindowsServiceTest.exe
sc stop "ServiceTest"
echo ServiceTest服务卸载完成! 
echo. & pause 
执行ServiceTestInstaller.bat,如下图:
C# 开发windows 服务_第10张图片 

四、 Window 服务如何调试

首先安装好服务,然后剩下的事情就和普通程序调试一样了。

注意安装的路径,应该是程序所在的Bin\Debug\下的服务程序exe文件。

五、 Window 服务的使用价值

1、 建立定时执行的工作任务。

2、 建立服务器监控程序。

3、 公共的应用程序访问接口。

4、 其他用途。

六、 Window服务使用演习

C# 开发windows 服务_第11张图片

你可能感兴趣的:(C# 开发windows 服务)