繁体   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