Topshelf便捷创建Windows服务

本文介绍如何将Quartz.net定时任务框架与Topshelf结合使用,创建Windows服务。通过自定义服务类并实现ServiceControl接口的方法,可以实现定时任务服务的启动、停止、暂停及继续等功能。

结合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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值