使用.NET Core創建Windows服務詳細步驟


#創建步驟

使用該方式創建,首先要確保你已經安裝了.NET Core 3.0或以上版本 . 但是如果你想要在.NET Core 2.x項目中使用這個方式,應該是行不通的。

1、使用Visual Studio創建

打開Visual Studio,創建新項目,找到Worker Service模板。
在這裏插入圖片描述

2、使用命令行創建

dotnet new worker

#項目結構說明

創建出來的項目,包含兩個主要文件。其中Program.cs文件是應用的啓動“引導程序”。另外一個文件是worker.cs文件,在這個文件中,你可以編寫你的服務邏輯。同時在依賴項的包中引入了Microsoft.Extensions.Hosting包。
在這裏插入圖片描述

#將應用轉換成Window服務

當前項目可在linux下完美運行,但是還不能以服務的方式在windows上安裝運行。

1、引入Microsoft.Extensions.Hosting.WindowsServices

爲了將應用轉換成Windows服務,我們需要使用如下命令引入一個包。

Install-Package Microsoft.Extensions.Hosting.WindowsServices

在這裏插入圖片描述

2、修改代碼

需要修改Program.cs文件,添加UseWindowsService()方法的調用。

    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args)
        {
            var host = Host.CreateDefaultBuilder(args);
            //判斷當前系統是否爲windows
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                host.UseWindowsService();
            }
            return host.ConfigureServices((hostContext, services) =>
            {
                services.AddHostedService<Worker>();
            });
        }
    }

代碼中增加了對操作系統的判斷,從而可以兼容windows和linux。

3、發佈

使用Visual Studio發佈:
在這裏插入圖片描述
使用命令行發佈:

dotnet publish -r win-x64 -c Release

4、使用SC命令在windows上安裝服務

sc create TestService BinPath=D:\dir\WindowsServiceExample.exe

也可以創建一個bat文件,用來安裝windows服務,如下:

@echo off 
@title 安裝windows服務
@echo off 
echo= 安裝服務!
@echo off  
@sc create worktest binPath= "%~dp0WorkerService1.exe"  
echo= 啓動服務!
@echo off  
@sc start worktest 
@echo off  
echo= 配置服務! 
@echo off  
@sc config worktest start= AUTO  
@echo off  
echo= 成功安裝、啓動、配置服務!   
@pause

將bat文件放到服務文件同目錄,修改下服務名和exe名字即可雙擊運行安裝。

SC其他操作服務的常用命令:

sc start TestService
sc stop TestService
sc delete TestService

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