在.NET Core通用主机中使用运行状况检查中间件

时间:2019-07-19 04:39:28

标签: asp.net-core .net-core asp.net-core-2.2 asp.net-core-middleware .net-core-2.2

为处理异步消息的应用程序使用.NET Core Generic Host

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

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

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

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

如果使用.NET Core通用主机,我该怎么办...

亲切的问候。

1 个答案:

答案 0 :(得分:-1)

使用基于HttpListener的运行状况检查服务器解决了这一问题-很高兴被证明是错误的,但是AFAIK,Kestrel / ASP.NET Core中间件不适用于.NET 2.2和通用主机。

有关代码,请参见here