c# Topshelf 搭建 Windows 服务

用本文基于 .net core 控制台应用程序部署为服务(.net Framework 可用)。
一、创建.NET Core的控制台应
在这里插入图片描述
第二步:通过 Nuget 安装 Topshelf 包。
在这里插入图片描述
三、代码
Program文件

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

            Topshelf.HostFactory.Run(Handler);
        }

        /// <summary>
        /// 部署说明
        /// 1发布成自包含类库方式
        /// 2使用管理员运行Dos命令行
        /// 3完整exe路径 install(安装)  uninstall(卸载)
        /// 4去到服务找到对应的服务进行启动
        /// </summary>
        /// <param name="cfg"></param>
        static void Handler(Topshelf.HostConfigurators.HostConfigurator cfg)
        {
            cfg.Service<MKAutoDataService>(x =>
            {
                // 指定服务类型。这里设置为 MKAutoDataService
                x.ConstructUsing(name => new MKAutoDataService());
                // 当服务启动后执行的方法
                x.WhenStarted(tc => tc.Start());
                // 当服务停止后执行的方法
                x.WhenStopped(tc => tc.Stop());


            });

            // 服务用本地系统账号来运行
            cfg.RunAsLocalSystem();

            // 服务描述信息
            cfg.SetDescription("同步血浆数据服务");

            // 服务显示名称
            cfg.SetDisplayName("MKAutoPlasmaDataService");

            //服务名称
            cfg.SetServiceName("MKAutoPlasmaDataService");
        }
    }

MKAutoDataService

public void Start()
        {
            Thread AutoData = new Thread(AutoData);
            tAutoData.Start();
        }
        public void Stop()
        {

        }
         private void AutoData(object state)
        {
            while (true)
            {
                try
                {
                        //方法内容
                }
                catch (Exception ex)
                {
                    
                }
            }
        }

四、发布安装服务
先发布
在这里插入图片描述
找到你发布的路径的EXE文件,复制对应路径,打开CMD用管理员运行执行路径加 install语句安装
在这里插入图片描述

然后找到对应服务启动就行了在这里插入图片描述
也可以将服务删除
删除命令
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值