zoukankan      html  css  js  c++  java
  • Topshelf 搭建 Windows 服务

      Topshelf 是一个用来部署基于.NET Framework 开发的服务的框架。简化服务创建于部署过程,并且支持控制台应用程序部署为服务。本文基于 .net core 控制台应用程序部署为服务(.net Framework 可用)。

    第一步:创建名为 TopshelfDemo 的控制台应用程序。

     第二步:通过 Nuget 安装 Topshelf 包。

     第三步:Toshelf 配置,代码并不多下面都有注释。

    using System;
    using Topshelf;
    
    namespace TopshelfDemo
    {
        class Program
        {
            static void Main(string[] args)
            {
                try
                {  
                    // 配置和运行宿主服务
                    HostFactory.Run(x =>                                 //1
                    {
                        x.Service<Service>(s =>                        //2
                        {
                            // 指定服务类型。这里设置为 Service
                            s.ConstructUsing(name => new Service());     //3
    
                            // 当服务启动后执行什么
                            s.WhenStarted(tc => tc.Start());              //4
    
                            // 当服务停止后执行什么
                            s.WhenStopped(tc => tc.Stop());               //5
                        });
    
                        // 服务用本地系统账号来运行
                        x.RunAsLocalSystem();                            //6
    
                        // 服务描述信息
                        x.SetDescription("我的项目服务");        //7
                        // 服务显示名称
                        x.SetDisplayName("MyProjectServiceShowName");                       //8
                        // 服务名称
                        x.SetServiceName("MyProjectService");                       //9 
                    }); 
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
            }
        }
    
        public class Service
        { 
            public void Start() {
                //To do something
            }
            public void Stop() {
                //To do something
            }
        }
    }

    第四步:安装服务

      确保项目正常生成,然后通过管理员权限打开 cmd 命令窗口,找到项目所在的 Debug 目录,输入命令:TopshelfDemo.exe install。

      如果是使用 .net core 的小伙伴你会发现 Debug下压根没有 TopshelfDemo.exe ,这不是扯淡呢么,别急往下看。

      由于 .net core 依赖 runtimes 所以我们需要发布以下程序,并且选择独立项目就ok啦。

    这时你在布后的路径下就可以找到 TopshelfDemo.exe 啦。

    这时服务就安装完毕了,我们可以通过 Windows 服务中查看。

     删除服务命令:TopshelfDemo.exe uninstall 

    也可以通过 sc delete MyProjectService 进行删除

    好了,到这里就完事儿了,哪里有问题希望大家猛烈拍砖以便修正~

      链接: https://pan.baidu.com/s/1bHIQgO6GFahXOtgI3dlNTA

      提取码: thki

      

  • 相关阅读:
    【集训队作业2018】不可名状
    【UTR #3】量子破碎
    【清华集训2016】你的生命已如风中残烛
    【清华集训2016】如何优雅地求和
    玩转大数据系列之Apache Pig高级技能之函数编程(六)
    ElasticSearch入门之彼行我释(四)
    玩转大数据系列之Apache Pig如何与Apache Solr集成(二)
    玩转大数据之Apache Pig如何与Apache Lucene集成
    如何学好一门编程语言或技术?
    2015年春节往事小记
  • 原文地址:https://www.cnblogs.com/swjian/p/11498808.html
Copyright © 2011-2022 走看看