You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 2.2健康检查报错:无法解析HealthCheckService服务

解决.NET Core 2.2健康检查中无法解析HealthCheckService的问题

嘿,我之前也踩过这个坑!你遇到的错误根源很明确:只注册了自定义的IHealthCheck实现,但没在服务容器中添加健康检查的核心服务HealthCheckService。

在.NET Core 2.2的健康检查体系里,UseHealthChecks中间件依赖HealthCheckService来执行所有注册的健康检查,而这个核心服务不会自动注册——你得显式调用AddHealthChecks()方法来初始化它,同时把你的自定义检查绑定进去。

修复步骤:

  1. 更新ConfigureServices方法,先调用AddHealthChecks(),再添加你的自定义健康检查:
public void ConfigureServices(IServiceCollection services)
{
    // 先添加健康检查核心服务体系
    services.AddHealthChecks()
            // 注册你的自定义IHealthCheck实现,替换成你的类名和自定义检查标识
            .AddCheck<YourCustomHealthCheck>("custom_health_check");
    
    // 其他服务注册逻辑...
}
  1. 你的Configure方法不需要修改,保持原来的UseHealthChecks调用即可:
public void Configure(IApplicationBuilder app)
{
    app.UseHealthChecks("/hc");
    // 其他中间件配置逻辑...
}

错误原因详解

HealthCheckMiddleware在激活时需要HealthCheckService实例来处理健康检查请求,但你之前只注册了自己的IHealthCheck实现,没有初始化整个健康检查服务体系,所以DI容器找不到对应的服务依赖,就抛出了InvalidOperationException。

内容的提问来源于stack exchange,提问作者lmcarreiro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:33:17