为处理异步消息的应用程序使用.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通用主机,我该怎么办...
亲切的问候。
答案 0 :(得分:-1)
使用基于HttpListener的运行状况检查服务器解决了这一问题-很高兴被证明是错误的,但是AFAIK,Kestrel / ASP.NET Core中间件不适用于.NET 2.2和通用主机。
有关代码,请参见here。