簡體   English   中英

.net 核心 Windows 服務與工作人員模板

[英].net core Windows Service vs Worker Template

這個問題是這個 SO question的延續。 我只是想了解使用 ServiceBase class編寫的 Windows 服務與使用 WorkerTemplate 的 windows 服務之間的區別,在 這里完成。

這個問題的原因是前者的實現在 docker 上工作,而后者不是。

如果我理解正確,WorkerTemplate 是一種嘗試,通過提供package可以更輕松地開發 windows 服務,該 package 將在 StartAsync() 上提供抽象 ExecuteAsync() 並通過將 IHostingLifetime 替換為 AddHostedService<>() 來管理服務的生命周期那為什么當我使用 ServiceBase 和 IHostingLifetime 運行應用程序時,它在容器中運行良好,而當我使用 WorkerTemplate 時,它會拋出服務超時錯誤。

注意:這兩種實現在本地以及在服務器上部署時都可以正常工作。 僅在容器中觀察到此行為。

在我看來,第一個用於托管 asp.net 核心應用程序作為 windows 服務。 第二個是將應用程序托管為 web 應用程序。

這是運行工作服務的兩種方式之間的主要區別。 asp.net 核心工作者服務是同一個。 asp.net 內核將在 asp.net 內核應用程序啟動時運行工作服務。

容器無法運行 windows 服務,但可以運行 asp.net 核心應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM