使用Topshelf快捷创建Windows服务

Topshelf相关

环境搭建

安装Topshelf包:

  • Install-Package Topshelf
  • Install-Package Topshelf.Log4Net

快捷创建Windows服务

1、 创建任务

class MyJob:Topshelf.ServiceControl
{
    readonly Timer _timer;
    public MyJob()
    {
        _timer = new Timer { AutoReset = true, Interval = 2000 };
        _timer.Elapsed += _timer_Elapsed;
    }

    private void _timer_Elapsed(object sender, ElapsedEventArgs e)
    {
        Console.WriteLine($"当前时间为:{DateTime.Now}");
    }
    //public void Start() =>_timer.Start();

    //public void Stop() => _timer.Stop();

    public bool Start(HostControl hostControl)
    {
        _timer.Start();
        return true;
    }

    public bool Stop(HostControl hostControl)
    {
        _timer.Stop();
        throw new Exception();
    }
}

2、 创建Windows服务

 HostFactory.Run(hcf =>
 {
     hcf.Service<MyJob>(s =>
     {
         s.ConstructUsing(name => new MyJob());
         //服务启动后
         s.WhenStarted(t => t.Start());
         //当服务停止的时候
         s.WhenStopped(t => t.Stop());
     });
     hcf.RunAsLocalSystem();
     //hcf.RunAsLocalService();
     //hcf.RunAsNetworkService();
     //显示的服务名称
     hcf.SetDisplayName("MyFirstService");
     //服务名称
     hcf.SetServiceName("MyFirstService");
     hcf.SetDescription("这是利用Topshelf开源项目简单方便的快捷生成的服务,服务主要是用于记录日志");
 });

启动项目运行结果:
在这里插入图片描述

安装 Windows服务

1、安装服务:

Study.TopshelfDemoFramework.exe install

在这里插入图片描述
运行cmd输入services.msc进入服务查看安装的服务
在这里插入图片描述
2、启动服务:

Study.TopshelfDemoFramework.exe start

在这里插入图片描述
这时打开服务窗口就能看见服务状态为正在运行中。

3、卸载服务:

Study.TopshelfDemoFramework.exe uninstall

其他更多信息请参考官方文档,Topshelf也集成了Log4Net,在这个demo中只是简单的演示如何创建服务及运行服务,记录日志相关集成留给园友自己去完成。

参考文档

下载地址:https://download.csdn.net/download/xhl_james/11140868

原文地址:https://www.cnblogs.com/cqxhl/p/12993303.html