dotnet core實現windows service

使用Dotnet core編寫Window Service程序實踐

近年來,需要編寫windows service的情況越來越少,但偶爾也會用到,比如計算機定期執行數據整理的任務等等

1、創建工程

我的習慣是建立三個工程,一個Windows Service主程序,一個Console主程序,一個業務邏輯庫

使用dotnet core命令創建工程

首先,可以使用dotnet new --list命令查看可以創建的工程類型

dotnet new console -n test-app    // 創建Console應用,名稱爲“test-app”(可選)
dotnet new worker -n xxxxService  // 創建Worker Service應用,用於創建Windows服務
dotnet new classlib -n xxxxBll    // 創建類庫,用於編寫業務邏輯代碼(可選)
dotnet new sln -n xxxx            // 創建解決方案

使用VS、VSCode或Rider等IDE打開解決方案,把項目添加到solution中,建立引用關係等操作。

注:Worker Service程序相對於以往的Windows Service開發,可以直接進行調試,小的工程也可以直接創建Worker,而無需創建test-app調試用工程與BLL類庫。

2、業務邏輯編寫與調試

設置test-app爲啓動項,可以方便的進行開發和調試,把業務邏輯代碼都寫到BLL中。

3、開發Windows Service

  3.1、把Worker Service改造成Windows Service

1、在項目中添加nuget包:Microsoft.Extensions.Hosting.WindowsServices,選好對應版本。

      例如,我的Microsoft.Extensions.Hosting版本是3.1.3,於是選擇Microsoft.Extensions.Hosting.WindowsServices的版本爲3.1.3

2、在program.cs內部,將UseWindowsService()添加到CreateHostBuilder

            Host.CreateDefaultBuilder(args)
                .UseWindowsService()
                .ConfigureServices((hostContext, services) =>
                {
                    services.AddHostedService<Worker>();
                });

3、把BLL與Worker Service程序做好關聯即可發佈。

 

 

 

 

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