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

5 c# docker .net-core

似乎有两种类型的实质性.NET Core项目:ASP.NET Core Web App和Console App.我想在Docker环境(Linux容器)中构建类似Windows服务的东西,其中进程启动,无限期运行,并且仅在被告知时停止.两种项目类型似乎都不合适.我错过了什么吗?

dba*_*lia 4

两种类型的应用程序都有意义,这取决于您计划如何与此服务进行通信。

如果您想在某个 TCP 端口上通过标准 HTTP 与其进行通信,那么使用 ASP.Net Core Web 应用程序将使事情变得更容易。

如果您想通过一些更“奇特”的东西(例如 RabbitMQ、Kafka、原始 TCP 套接字或其他东西)进行通信,那么控制台应用程序就是您想要的。正如 Gareth Luckett 的回答所指出的,诀窍是确保你的main函数会阻塞。正在运行的 Docker 容器预计只要容器应该运行,主线程就会阻塞。