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

Aspire 9.1服务返回Unhealthy状态,Aspire仪表盘未同步显示

问题原因及解决办法

核心原因

Aspire仪表盘默认基于**就绪检查(ready标签)**判定服务健康状态,而你修改的健康检查仅绑定了["live"](存活检查)标签。存活检查主要用于判断服务是否仍在运行(比如K8s的存活探针场景),但Aspire仪表盘默认不将其作为服务健康状态的判定依据,所以即便/alive接口返回Unhealthy,仪表盘依然会显示绿色健康状态。

解决步骤

  1. 给自定义健康检查添加ready标签
    修改代码,让标签数组同时包含live和ready:

    .AddCheck("self", static () => HealthCheckResult.Unhealthy(), ["live", "ready"]);
    

    这样Aspire仪表盘就能采集到该检查的结果,从而正确显示服务的不健康状态。

  2. 调整Aspire健康检查采集规则(可选)
    如果不想修改检查标签,可在服务的健康检查配置中指定Aspire采集live标签的结果:

    builder.Services.AddAspireHealthChecks()
        .AddCheck("self", static () => HealthCheckResult.Unhealthy(), ["live"])
        .AddHealthChecksPublisher<AspireHealthCheckPublisher>(options =>
        {
            options.HealthStatusCheckTags = new[] { "live" };
        });
    

补充说明

你调用/health或/alive能返回正确状态,是因为这两个接口的逻辑不同:

  • /health默认返回所有健康检查的结果(包含live标签的检查)
  • /alive仅返回带有live标签的检查结果
    但Aspire仪表盘的状态展示逻辑独立于这些接口,它默认依赖ready标签的检查结果来更新服务状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 20:22:07