其實官方網站寫的很清楚
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 {服務名稱}
文章標籤
全站熱搜
