我正在尝试将 .Net Core 控制台应用程序设置为服务。使用 .Net 标准,我通常使用 Topshelf,但这似乎不支持 .Net Core。
既然 Topshelf 不是一个选项,我该怎么做才能将 .Net Core 控制台应用程序作为 Windows 服务运行?
我来访问https://github.com/PeterKottas/DotNetCore.WindowsService , 这是生产环境的可行替代品吗?
最佳答案
有几个选项:
使用 Windows Compatibility Pack它将
ServiceBase
和相关 API 带回 .NET Core,因此 TopShelf 可以开箱即用。 (该包在撰写本文时处于 RC 状态,并计划在大约一周后稳定发布)TopShelf现在支持 .NET Core,基于更新的 .NET Core 版本的兼容包/Windows 兼容性。
https://github.com/PeterKottas/DotNetCore.WindowsService似乎对很多用户都有效,所以我建议试一试。
(3) 中的库是围绕 DasMulli.Win32.ServiceUtils 的一个很好的 API这是我为我们公司编写的,以便能够在生产中部署独立的 .NET Core 应用程序。到目前为止,我们没有遇到任何问题。
抽象 Windows 服务基础结构并运行任意程序的其他服务主机 - 例如 Non-Sucking Service Manager .请注意,这可能无法提供正常关闭以响应停止命令的好方法。
关于c# - .Net 核心 2.0 控制台应用程序作为 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50477317/