创建 .NET Core 辅助服务,侦听 TCP 消息和 HTTP 请求

Ola*_*son 6 c# .net-core

我想创建一个 .NET Core 工作服务,它在后台作为 Windows 服务运行,并且能够通过 TCP 接收特定消息和通过 HTTP 接收特定消息。我熟悉创建 .NET Core Web API,但现在我无法使用 Web API 模板。SO上的一些帖子告诉我创建一个Web API项目并向其中添加工作服务和TCP服务器,例如

在 .Net Core Worker Service 中托管 Web API - 无法引用 IWebHostEnvironment

但由于这个项目是一个侦听 TCP 消息和 HTTP 请求的服务,我更愿意保留工作服务模板并为其添加一个 TCP 服务器和 HTTP 侦听器。我唯一遇到的困难是在不使用模板的情况下在该工作服务中创建 Web API。我认为这可以通过配置 Kestrel 服务器来解决

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1

但是 Service Worker 项目不是 Web 应用程序,因此它无法访问该ConfigureWebHostDefaults方法,请在此处获取更多信息

IHostBuilder 不包含 ConfigureWebHostDefaults 的定义

那么是否有可能创建一个在启动时启动 TCP 服务器(这没问题)和侦听 REST API(不使用 Web API 模板)的工作服务项目?或者我是否总是必须首先创建一个 Web API 并尝试使其行为像一个工作服务并在其启动时的某处添加一个 TCP 服务器?