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 所以我們需要發佈以下程序,並且選擇獨立項目就o  k啦。

 

這時你在布後的路徑下就可以找到 TopshelfDemo.exe 啦。

 

這時服務就安裝完畢了,我們可以通過 Windows 服務中查看。

 

 刪除服務命令:TopshelfDemo.exe uninstall 

 

也可以通過 sc delete MyProjectService 進行刪除

好了,到這裏就完事兒了,哪裏有問題希望大家猛烈拍磚以便修正~

 

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

  提取碼: thki

 

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章