• 使用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

  • 相关阅读:
    L1-021 重要的话说三遍
    L1-020 帅到没朋友
    pytest--钩子
    pytest--allure
    pytest--常用插件
    pytest--高级用法
    pytest--配置文件
    pytest--控制运行
    pytest--fixture
    pytest--使用前提
  • 原文地址:https://www.cnblogs.com/cqxhl/p/12993303.html
Copyright © 2020-2023  润新知