1. 程式人生 > 其它 >釋出輔助角色服務並安裝到Windows

釋出輔助角色服務並安裝到Windows

https://dotnetchina.gitee.io/furion/docs/process-service#2581-部署到-windows-service

記錄輔助角色服務部署到Windows Service

使用VS2019建立完Windows輔助服務專案如何部署到Windows上呢?

  • 第一步:安裝Microsoft.Extensions.Hosting.WindowsServices 拓展包
  • 第二步: 在 Program.cs 中新增 .UseWindowsService()
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

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

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .UseWindowsService()
                .Inject() // 需安裝Furion包(預設情況下,Inject() 方法註冊了 日誌、快取、依賴注入、載入配置、自定義 Startup 功能。
                          // 整合 Furion 後會自動掃描 Worker 類並實現自動註冊。)
                .ConfigureServices((hostContext, services) =>
                {
                    // 註冊資料庫服務
                    //services.AddDatabaseAccessor(options =>
                    //{
                    //    options.AddDb<DefaultDbContext>();
                    //});

                    // 註冊遠端請求
                    services.AddRemoteRequest();


                    // 以下程式碼可不用編寫,Furion 已實現自動註冊 Worker;
                    services.AddHostedService<Worker>();//註冊Worker類

                    // 等等其他服務註冊

                });
    }
}

  • 第三步:釋出 Worker Service,可通過 dotnet publish -c Release -o D:\Publish\WorkService
    命令釋出或通過 Visual Studio 2019 釋出。

  • 第四步:通過 sc.exe 工具來管理並建立 Windows 服務,通過 管理員模式 並開啟控制檯,輸入:
    sc.exe create FurionWorkerServices binPath= D:\Publish\WorkService\FurionWorker.exe
    ** 注意=後面要有一個空格
    建立成功後可通過 sc.exe query FurionWorkerServices 檢視服務狀態。

  • 第五步:

  • (1)啟動服務:sc.exe start FurionWorkerServices,啟動之後就可以在 Windows 服務工具中查看了。

  • (2)停止服務:sc.exe stop NETCoreDemoWorkerService

  • (3)刪除服務:sc.exe delete NETCoreDemoWorkerService

  • Tips:以上所有 sc.exe 命令必須在 管理員 模式下進行。

“fool me once,shame on you. fool me twice, shame on me.”,翻譯過來的意思是“愚弄我一次,是你壞;愚弄我兩次,是我蠢”。