在 .NET Core Generic Host 中使用健康检查中间件

Use health check middleware in .NET Core Generic Host

将 .NET Core Generic Host 用于处理异步消息的应用程序。

我们使用通用主机而不是 .NET Core WebHost 的原因是因为我的一位同事曾多次看到 MassTransit(我们正在使用的轻量级服务总线框架)运行ning 作为 .NET Core WebHost 的一部分在收到 SIGTERM 信号后并不总是在 Linux 正常关闭 - 我们不得不使用 SIGKILL 强行终止进程。

此应用程序将 运行 在 Kubernetes 上运行,我们希望使用 K8s 活性探测器实现自我修复架构。在其他使用WebHost的.NET Core应用程序中,我们使用了.NET Core 2.2中引入的Health Checks,但我不知道如何使用这样的中间件在通用主机中。

在 WebHost 中,我可以按如下方式配置中间件:

app.UseHealthChecks(appSettings.HealthChecksPath ?? "/health");

如果使用 .NET Core 通用主机,我将如何执行此操作...

亲切的问候。

通过使用基于 HttpListener 的 health-check 服务器解决了这个问题 - 很高兴被证明是错误的,但是 AFAIK,Kestrel / ASP.NET 核心中间件不适合 .NET 2.2 和通用主机。

代码见here