.Net core 2.0控制台应用程序作为Windows服务

Mat*_* P. 8 c# console-application .net-core-2.0

我正在尝试将.Net Core Console应用程序设置为服务.使用.Net标准我通常使用Topshelf,但这似乎不支持.Net Core.

由于Topshelf不是一个选项,我可以做什么来运行.Net Core Console应用程序作为Windows服务?

我来访问https://github.com/PeterKottas/DotNetCore.WindowsService,这是生产环境的可行替代品吗?

Mar*_*ich 9

有几种选择:

  1. 使用Windows Compatibility Pack,它将WindowsServiceBase API和相关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 ,我为我们的公司编写该API是为了能够在生产中部署独立的.NET Core应用程序。到目前为止,我们还没有遇到任何问题。

  5. 其他服务宿主可以抽象化Windows服务基础结构并运行任意程序,例如Non-Sucking Service Manager。请注意,这可能不是很好的方式来正常响应停止命令而关闭。