1.windows服务的价值
可以随系统启动,这可能是任何服务的特点。当然也可以做一个应用放到启动项里面,但这没有服务灵活,毕竟服务是专门给服务用的;并且服务还有一个特点可以定义服务的依赖关系,可以依赖与另一个服务而启动。
2.创建一个简单的服务
2.1 代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
namespace windows服务实验自定义
{
class Program
{
static void Main(string[] args)
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new ServiceMy()
};
ServiceBase.Run(ServicesToRun);
}
}
class ServiceMy : ServiceBase {
protected override void OnStart(string[] args)
{
Console.WriteLine("启动");
}
protected override void OnStop()
{
Console.WriteLine("停止");
}
}
}
2.2 代码解析
windows服务框架理解,如下两个要点:
2.2.1.服务会需要一个启动和停止的接口,也就是说有这两个接口的类就可以注册为windows服务。就是继承ServiceBase类的类就可以注册给服务。
2.2.2.服务可以启动一个数组,可以启动一个ServiceBase.Run(ServicesToRun)的数组。
3.关于服务的操做
3.1 服务的注册,原则上任何程序都可以注册为服务,但是如果没有启动和和结束接口,可能注册成功的接口也没有启动起来。
sc create 服务表示 binpath= D:\路径\xxx.exe type= own start= auto displayname= 服务名称
3.2 用工程注册
3.2.1 给服务添加注册程序
3.2.2 注册方法
C:\Windows\Microsoft.NET\Framework\v4.0.30319>installutil E:\xx\xxx.exe
installutil 在.net 目录,所以必须定位到该目录才能使用该命令。
3.2.3 其他注册方法
当然还有其他的注册方法,使用一些专有的工具,但以上这些方法使用起来简单有效,所以没对其他的方法进行试验。因为个人觉得意义不大。
3.2.3 注册完的服务可以去服务目录查看,通常通过控制面板直接进入即可,也可以通过 services.msc命令直接打开服务列表。进入服务列表可以对服务进行设置,主要就是自动启动或者手动启动等,也可对服务直接启动或停止。
4.关于服务的其他命令
启动服务:net start 服务名
停止服务:net stop 服务名
取消服务的注册:sc delete “服务名称”