繁体   English   中英

.net 核心 Windows 服务与工作人员模板

[英].net core Windows Service vs Worker Template

这个问题是这个 SO question的延续。 我只是想了解使用 ServiceBase class编写的 Windows 服务与使用 WorkerTemplate 的 windows 服务之间的区别,在 这里完成。

这个问题的原因是前者的实现在 docker 上工作,而后者不是。

如果我理解正确,WorkerTemplate 是一种尝试,通过提供package可以更轻松地开发 windows 服务,该 package 将在 StartAsync() 上提供抽象 ExecuteAsync() 并通过将 IHostingLifetime 替换为 AddHostedService<>() 来管理服务的生命周期那为什么当我使用 ServiceBase 和 IHostingLifetime 运行应用程序时,它在容器中运行良好,而当我使用 WorkerTemplate 时,它会抛出服务超时错误。

注意:这两种实现在本地以及在服务器上部署时都可以正常工作。 仅在容器中观察到此行为。

在我看来,第一个用于托管 asp.net 核心应用程序作为 windows 服务。 第二个是将应用程序托管为 web 应用程序。

这是运行工作服务的两种方式之间的主要区别。 asp.net 核心工作者服务是同一个。 asp.net 内核将在 asp.net 内核应用程序启动时运行工作服务。

容器无法运行 windows 服务,但可以运行 asp.net 核心应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM