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

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM