我目前正在使用 Docker 容器下的 PostgreSQL 和 EntifyFramework Core 对我的 Identity ASP.NET Core 3.1 项目进行健康检查。
这是我的项目中安装的 nuget 包
- Microsoft.EntityFrameworkCore 3.1.3
- Npgsql.EntityFrameworkCore.PostgreSQL 3.1.3
- Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore 3.1.3
- Microsoft.AspNetCore.Identity.EntityFrameworkCore 3.1.3
这是我的 Startup.cs 类
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<IdentityContext>(options => options.UseNpgsql(Configuration["Identity:ConnectionString"]));
services.AddHealthChecks()
.AddDbContextCheck<IdentityContext>("Database");
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseHealthChecks("/health");
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
一切正常,我通过访问 /health 端点获得了一个带有 200 状态代码的健康响应,直到我故意停止 Docker 中的 PostgreSQL 容器。
我期望从 /health 收到带有不健康响应的 503 状态代码,但收到带有 200 状态代码的空白响应