c# - 针对 Linux Docker 容器创建长期运行的 .NET Core 服务

标签 c# docker .net-core

似乎有两种类型的实质性 .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/

相关文章:

c# - C# 中生成的标识符的命名约定

c# - 在 C# 中浏览动态对象 (json)

docker - 无法使用凭据存储在 Ubuntu 18 上登录 Docker

docker - docker 镜像名称是什么,名称是否唯一?

c# - 如何在 .Net Core 中设置默认内部版本号

c# - 模拟 Guid.NewGuid()

c# - 程序化 RDP 登录和 SendMessage

postgresql - Postgres 不在 docker 中初始化数据库

c# - 使用测试服务器的 .NET 6 E2E 测试在 TeamCity CI 上失败,但工作手动运行

azure - 无法连接到 Azure Pipelines 中的 docker