其實官方網站寫的很清楚

https://docs.microsoft.com/zh-tw/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-2.1

 

我這邊補充一下實做的情況發生得問題與解法

1.b 新增 Microsoft.AspNetCore.Hosting.WindowsServices 的套件參考。

指令(資料來源

dotnet add package Microsoft.AspNetCore.Hosting.WindowsServices --version 2.1.1

或是直接在專案檔中加入以下文字

<PackageReference Include="Microsoft.AspNetCore.Hosting.WindowsServices" Version="2.1.1" />

 

2.在 Program.Main 中進行下列變更

別忘記最上面加入

using Microsoft.AspNetCore.Hosting.WindowsServices;

否則無法RunAsService()

4.使用 sc.exe 命令列工具建立服務。

使用命令提示字元「cmd」 以「系統管理員身份」執行
使用命令提示字元「cmd」 以「系統管理員身份」執行
使用命令提示字元「cmd」 以「系統管理員身份」執行

 

很重要,因為power shell不能,會一直出錯說找不到binpath…

所以使用power shell的vs code 也無法執行

 

最後補上用指令啟用與關閉win服務

> 佈署windows service
dotnet publish --configuration Release -o "{佈署指定資料夾}"
1. 建立服務
sc create {服務名稱} binpath= "{佈署指定資料夾}\{專案檔}.exe --service"
1. 開啟服務
sc start {服務名稱}
2. 查詢服務狀態
sc query {服務名稱}
3. 停止服務
sc stop {服務名稱}
4. 移除服務
sc delete {服務名稱}
文章標籤
全站熱搜
創作者介紹
創作者 45 的頭像
45

FIVE

45 發表在 痞客邦 留言(0) 人氣(27)