使用Topshelf管理Windows服务

目的:以控制台方式开发Windows服务程序,调试部署方便。

 

https://www.cnblogs.com/itjeff/p/8316244.html

https://www.cnblogs.com/gossip/p/4506142.html

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Topshelf;

namespace Topshelf测试
{
    //用控制台方式开发Windows服务,使用开源组件Topshelf做托管
    //主要目的:调试方便

    //https://www.cnblogs.com/itjeff/p/8316244.html
    //
    //安装:TopshelfDemo.exe install
    //启动:TopshelfDemo.exe start
    //卸载:TopshelfDemo.exe uninstall

    class Program
    {
        static void Main(string[] args)
        {

            HostFactory.Run(c =>
            {
                c.SetServiceName("LogServices");
                c.SetDisplayName("LogServices");
                c.SetDescription("LogServices");
                c.RunAsLocalSystem();

                c.Service<TopshelfService>(s =>
                {
                    s.ConstructUsing(b => new TopshelfService());
                    s.WhenStarted(o => o.Start());
                    s.WhenStopped(o => o.Stop());
                    s.WhenPaused(o => o.Pause());
                    s.WhenContinued(o => o.Continue());
                    s.WhenShutdown(o => o.Shutdown());
                });
            });
        }
    }


    public class TopshelfService
    {
        public void Start()
        {
            //服务逻辑
        }

        public void Stop()
        {
        }

        public void Pause()
        {
        }

        public void Continue()
        {
        }

        public void Shutdown()
        {
        }
    }
}

posted @ 2018-12-12 09:24  81  阅读(245)  评论(0编辑  收藏  举报