[英].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 ,这是生产环境的可行替代品吗?
有几个选择:
使用Windows兼容包将ServiceBase
和相关API带回.NET Core,因此TopShelf可以开箱即用。 (在写作时,包装在RC中,预定稳定释放大约一周之后)
TopShelf现在支持.NET Core,基于兼容性包/ Windows兼容性,适用于较新的.NET Core版本。
https://github.com/PeterKottas/DotNetCore.WindowsService似乎适用于很多用户,因此我建议尝试一下。
(3)中的库是围绕DasMulli.Win32.ServiceUtils的一个很好的API,我为公司编写了能够在生产中部署自包含.NET Core应用程序的API。 到目前为止,我们没有遇到任何问题。
其他服务主机抽象Windows服务基础结构并运行任意程序 - 例如非吸引服务管理器 。 请注意,这可能无法为响应Stop命令而优雅地关闭。
在.net核心中,您无法选择以服务身份运行。 但是,如果您将控制台应用程序容器化,则可以将容器部署在任何位置,它与作为服务运行时相同。 从.NET Core 2.1开始,您可以使用Host和HostBuilder在您的控制台应用程序中管理DI,Logging,Graceful关闭等。 看一下:
在我们公司,我们使用非吸吮服务管理器 ,到目前为止,我没有任何问题,你可能想看看。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.