.NET Core 2.1中如何配置类似.NET 5的健康检查端点?
.NET Core 2.1 适配.NET 5风格健康检查配置
步骤1:安装健康检查NuGet包
.NET Core 2.1的健康检查功能并非框架内置,需先安装对应依赖包:
Install-Package Microsoft.AspNetCore.Diagnostics.HealthChecks
或通过.NET CLI执行:
dotnet add package Microsoft.AspNetCore.Diagnostics.HealthChecks
步骤2:注册健康检查服务
在Startup.cs的ConfigureServices方法中完成服务注册:
public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); // 注册健康检查基础服务 services.AddHealthChecks(); }
步骤3:配置健康检查端点
在Configure方法中配置对应端点,注意.NET Core 2.1使用IHostingEnvironment而非.NET 5+的IWebHostEnvironment,通过UseHealthChecks实现等价于.NET 5中MapHealthChecks的功能:
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } // 配置/hc端点:不执行任何健康检查(与.NET 5中Predicate = _ => false效果一致) app.UseHealthChecks("/hc", new HealthCheckOptions { Predicate = _ => false }); // 配置/rc端点:使用默认配置,执行所有已注册的健康检查 app.UseHealthChecks("/rc"); app.UseMvc(); }
配置说明
/hc端点:通过Predicate = _ => false设定,不会运行任何已注册的健康检查,始终返回健康状态,和你在.NET 5中的配置效果完全匹配。/rc端点:采用默认配置,会执行所有通过AddHealthChecks注册的健康检查,返回结果包含全部检查的状态信息。
内容的提问来源于stack exchange,提问作者NAKED_DEVELOPER
相关产品推荐
相关产品推荐

