我已经四处查找,但是我认为其中一种方法是旧的方式,但在将健康检查端点添加到中间件时,是否存在更深层次的区别?
在Startup.Configure()中...
app.UseEndpoints(endpoints =>
{
endpoints.MapHealthChecks("/health");
});
app.UseHealthChecks("/health")
我已经四处查找,但是我认为其中一种方法是旧的方式,但在将健康检查端点添加到中间件时,是否存在更深层次的区别?
在Startup.Configure()中...
app.UseEndpoints(endpoints =>
{
endpoints.MapHealthChecks("/health");
});
app.UseHealthChecks("/health")
UseHealthChecks
和MapHealthChecks
有微妙的区别,UseHealthChecks
允许您在使用null或空的PathString时捕获端口上的任何终结点,MapHealthChecks
不允许这样做,使用null会抛出异常,而空字符串只是等同于/
。
它们都在幕后使用相同的中间件HealthCheckMiddleware
。 MapHealthChecks
是IEndpointRouteBuilder
上的扩展方法,而UseHealthChecks
是IApplicationBuilder
上的扩展方法。
这里是一个参考源代码的引用。
https://github.com/dotnet/aspnetcore/tree/main/src/Middleware/HealthChecks/src/Builder
如果您查看源代码,您会发现UseHealthChecks
使用MapWhen()
,而MapHealthChecks
使用Map()
。