我開發了一個 Windows-worker 服務,我想在基于 docker 的環境中啟動它以進行自動化測驗。因此我使用以下命令構建它:
dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true
此外,我有以下 Dockerfile:
FROM mcr.microsoft.com/windows/servercore/insider:10.0.17763.107
COPY ["Install/", "C:/Service/Name/"]
RUN powershell New-Service -Name "Name" -BinaryPathName "C:\Service\Name\Name.exe"
當嘗試通過啟動來啟動服務Start-Service -Name "Name"需要很長時間并且服務保持在 Starting 狀態時,我在 Eventlog (LogName=System) 中收到 1053 錯誤。
由于服務沒有啟動,我又做了一個,主要是基于Visual Studio中的模板,所以它應該只在事件日志中記錄一條訊息。該服務具有相同的行為。在我的本地機器上安裝它時一切正常。
您是否知道為什么服務仍然處于啟動狀態,即使它已經完成了運行狀態的任務?
uj5u.com熱心網友回復:
我現在解決了這個問題,因為我發現了以下問題:https ://github.com/dotnet/runtime/issues/50020
UseWindowsService()在 Docker 中不起作用,所以我必須指定 WindowsServiceLifetime:
services.AddSingleton<IHostLifetime, WindowsServiceLifetime>();
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/438973.html
