Topshelf便捷创建Windows服务

结合Quartz.net学习,前提已经创建了一个定时任务,可见 《定时调度框架:Quartz.net》 (基于配置文件形式)

首先引用Topshelf.dll

自定义服务TestService,继承ServiceControl,实现方法。

public class TestService : ServiceControl
    {
        private readonly IScheduler scheduler;
        public TestService()
        {
             scheduler = StdSchedulerFactory.GetDefaultScheduler(); //创建一个作业调度
        }
        public bool Start(HostControl hostControl)
        {
            scheduler.Start();
            return true;
        }

        public bool Stop(HostControl hostControl)
        {
            scheduler.Shutdown();
            return true;
        }
        public bool Continue(HostControl hostControl)
        {
            scheduler.ResumeAll();
            return true;
        }

        public bool Pause(HostControl hostControl)
        {
            scheduler.PauseAll();
            return true;
        }

在Main中输入:

 static void Main(string[] args)
        {

            HostFactory.Run(x =>
            {

                x.Service<TestService>();

                x.SetDescription("QuartzDemo服务描述");
                x.SetDisplayName("QuartzDemo服务显示名称");
                x.SetServiceName("QuartzDemo服务名称");
            });
        }
 

 可以安装服务(程序所在目录下cmd执行),或可以用记事本输入改为bat格式,放在程序目录,双击执行

  • 安装:TopshelfDemo.exe install
  • 启动:TopshelfDemo.exe start
  • 卸载:TopshelfDemo.exe uninstall

 

若在安装过程中,报“ service can only be installed as an administrator

找到**.exe文件,属性-》兼容性-》勾选以管理员身份运行即可

原文地址:https://www.cnblogs.com/qiuguochao/p/7153186.html