使用 .NET Core Generic Host对于处理异步消息的应用程序。
我们使用通用主机而不是 .NET Core WebHost 的原因是因为我的一位同事看到过几次 MassTransit(我们正在使用的轻量级服务总线框架)作为 .NET Core 的一部分运行在收到 SIGTERM 信号后,WebHost 并不总是在 Linux 上正常关闭 - 我们不得不使用 SIGKILL 强行终止进程。
此应用程序将在 Kubernetes 上运行,我们希望使用 K8s 活跃度探测器实现自愈架构。在其他使用 WebHost 的 .NET Core 应用程序中,我们使用了 Health Checks .NET Core 2.2 中引入的,但我不知道如何在通用主机中使用这样的中间件。
在 WebHost 中,我可以按如下方式配置中间件:
app.UseHealthChecks(appSettings.HealthChecksPath ?? "/health");
如果使用 .NET Core 通用主机,我将如何做这件事...
亲切的问候。
最佳答案
通过使用基于 HttpListener 的健康检查服务器解决了这个问题 - 很高兴被证明是错误的,但 AFAIK、Kestrel/ASP.NET Core 中间件不适合 .NET 2.2 和通用主机。
见 here对于代码。
关于asp.net-core - 在 .NET Core Generic Host 中使用健康检查中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57105621/