因業務需要,最近搭建的定時任務必須跑在win服務器上,所以沒得辦法必須得把項目轉為服務,以前我記得是需要第三方組件實現轉換的。
現在NET6提供了解決方案,通過幾行代碼即可實現win服務。
1、首先參考官方文檔
// 官方文檔 https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-6.0&tabs=visual-studio // 網友相關提問 https://stackoverflow.com/questions/69124310/asp-net-core-net-6-preview-7-windows-service
2、然后參考我的
New-Service -Name {SERVICE NAME} -BinaryPathName "{EXE FILE PATH}" -Credential "{DOMAIN OR COMPUTER NAME\USER}" -Description "{DESCRIPTION}" -DisplayName "{DISPLAY NAME}" -StartupType Automatic {EXE PATH}:主機上應用程序文件夾的路徑(例如,d:\myservice)。不要在路徑中包含應用程序的可執行文件。不需要尾部斜杠。 {DOMAIN OR COMPUTER NAME\USER}:服務用戶帳戶(例如,Contoso\ServiceUser)。 // 注意 此項可以不填 {SERVICE NAME}:服務名稱(例如,MyService)。 {EXE FILE PATH}:應用程序的可執行路徑(例如,d:\myservice\myservice.exe)。包括帶有擴展名的可執行文件的文件名。 {DESCRIPTION}:服務描述(例如,My sample service)。 {DISPLAY NAME}:服務顯示名稱(例如,My Service)。 // 1、創建命令 New-Service -Name MyService -BinaryPathName "D:\myservice\myservice.exe" -Description "My sample service" -DisplayName "My Service" -StartupType Automatic // 2、執行命令 Start-Service -Name MyService