c# - .Net 核心 2.0 控制台应用程序作为 Windows 服务

标签 c# console-application .net-core-2.0

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

既然 Topshelf 不是一个选项,我该怎么做才能将 .Net Core 控制台应用程序作为 Windows 服务运行?

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

最佳答案

有几个选项:

  1. 使用 Windows Compatibility Pack它将 ServiceBase 和相关 API 带回 .NET Core,因此 TopShelf 可以开箱即用。 (该包在撰写本文时处于 RC 状态,并计划在大约一周后稳定发布)

  2. TopShelf现在支持 .NET Core,基于更新的 .NET Core 版本的兼容包/Windows 兼容性。

  3. https://github.com/PeterKottas/DotNetCore.WindowsService似乎对很多用户都有效,所以我建议试一试。

  4. (3) 中的库是围绕 DasMulli.Win32.ServiceUtils 的一个很好的 API这是我为我们公司编写的,以便能够在生产中部署独立的 .NET Core 应用程序。到目前为止,我们没有遇到任何问题。

  5. 抽象 Windows 服务基础结构并运行任意程序的其他服务主机 - 例如 Non-Sucking Service Manager .请注意,这可能无法提供正常关闭以响应停止命令的好方法。

关于c# - .Net 核心 2.0 控制台应用程序作为 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50477317/

相关文章:

c# - 检测在 C# 中运行的平台代码?

c# - Console当前行怎么写?

windows-services - dotNet Core 2 控制台应用程序 - 错误 1053 : The service did not respond in a timely fashion

c# - AWS Lambda 访问本地资源或存储 C#

c# - 无法转换为基类

c# - 无法将类型为 'System.Data.Entity.DynamicProxies' 的对象转换为类型 'BugTrackingSystem.BugDescriptor'

c# - Web Api 2 - 自定义数据类型 JSON 序列化

c# - 控制台应用程序不会定期刷新输出

c# - 我可以在 switch 语句中使用变量吗?

asp.net - 如何在.NET core 2中动态创建sitemap.xml?