似乎有两种类型的实质性 .NET Core 项目:ASP.NET Core Web App 和 Console App。我想在 Docker 环境(Linux 容器)中构建类似 Windows 服务的东西,进程在其中启动,无限期运行,并且仅在被告知时才停止。这两种项目类型似乎都不合适。我错过了什么吗?
最佳答案
两种类型的应用程序都有意义,这取决于您计划如何与此服务通信。
如果您想通过某些 TCP 端口上的标准 HTTP 与其通信,那么使用 ASP.Net Core Web 应用程序将使事情变得更容易。
如果您想通过 RabbitMQ、Kafka、原始 TCP 套接字或其他更“奇特”的东西进行通信,那么控制台应用程序就是您想要的。正如 Gareth Luckett 的回答所指出的那样,诀窍是确保您的 main
功能 block 。正在运行的 Docker 容器期望主线程在容器应运行时阻塞。
关于c# - 针对 Linux Docker 容器创建长期运行的 .NET Core 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44548088/