簡體   English   中英

.Net core 2.0控制台應用程序作為Windows服務

[英].Net core 2.0 console app as a windows service

我正在嘗試將.Net Core Console應用程序設置為服務。 使用.Net標准我通常使用Topshelf,但這似乎不支持.Net Core。

由於Topshelf不是一個選項,我可以做什么來運行.Net Core Console應用程序作為Windows服務?

我來訪問https://github.com/PeterKottas/DotNetCore.WindowsService ,這是生產環境的可行替代品嗎?

有幾個選擇:

  1. 使用Windows兼容包ServiceBase和相關API帶回.NET Core,因此TopShelf可以開箱即用。 (在寫作時,包裝在RC中,預定穩定釋放大約一周之后)

  2. TopShelf現在支持.NET Core,基於兼容性包/ Windows兼容性,適用於較新的.NET Core版本。

  3. https://github.com/PeterKottas/DotNetCore.WindowsService似乎適用於很多用戶,因此我建議嘗試一下。

  4. (3)中的庫是圍繞DasMulli.Win32.ServiceUtils的一個很好的API,我為公司編寫了能夠在生產中部署自包含.NET Core應用程序的API。 到目前為止,我們沒有遇到任何問題。

  5. 其他服務主機抽象Windows服務基礎結構並運行任意程序 - 例如非吸引服務管理器 請注意,這可能無法為響應Stop命令而優雅地關閉。

在.net核心中,您無法選擇以服務身份運行。 但是,如果您將控制台應用程序容器化,則可以將容器部署在任何位置,它與作為服務運行時相同。 從.NET Core 2.1開始,您可以使用Host和HostBuilder在您的控制台應用程序中管理DI,Logging,Graceful關閉等。 看一下:

.NET Core控制台應用程序中的托管服務

在我們公司,我們使用非吸吮服務管理器 ,到目前為止,我沒有任何問題,你可能想看看。

暫無
暫無

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

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