使用healthchecks vs 映射healthchecks

8

我已经四处查找,但是我认为其中一种方法是旧的方式,但在将健康检查端点添加到中间件时,是否存在更深层次的区别?

在Startup.Configure()中...

app.UseEndpoints(endpoints =>
{
    endpoints.MapHealthChecks("/health");
});

app.UseHealthChecks("/health")
1个回答

15

UseHealthChecksMapHealthChecks有微妙的区别,UseHealthChecks允许您在使用null或空的PathString时捕获端口上的任何终结点,MapHealthChecks不允许这样做,使用null会抛出异常,而空字符串只是等同于/

它们都在幕后使用相同的中间件HealthCheckMiddlewareMapHealthChecksIEndpointRouteBuilder上的扩展方法,而UseHealthChecksIApplicationBuilder上的扩展方法。

这里是一个参考源代码的引用。

https://github.com/dotnet/aspnetcore/tree/main/src/Middleware/HealthChecks/src/Builder

如果您查看源代码,您会发现UseHealthChecks使用MapWhen(),而MapHealthChecks使用Map()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接