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

Azure无法读取ASP.NET Core Web API健康检查状态求助

Azure健康检查显示不健康但端点返回Healthy的排查方案
  • 核对Azure健康检查探测配置

    • 确认Azure门户中健康检查的协议与API一致,若API强制HTTPS,需将探测协议设为HTTPS,否则会因协议不匹配失败。
    • 检查端口设置,确保和App Service实际监听端口对应(默认是80/443,自定义端口需同步配置)。
    • 若API配置了路由前缀(如/api),健康检查路径需加上前缀,比如/api/_health,避免路径匹配失败。
  • 验证健康检查响应状态码

    • Azure健康检查仅认可200-299区间的状态码,直接访问显示"Healthy"不代表状态码符合要求。用以下命令确认实际返回码:
      curl -I https://your-api-domain/_health
      
    • 若状态码非2xx,排查AddSqlServer健康检查是否在Azure环境中真正通过:比如连接字符串是否在App Service应用设置中正确配置,数据库防火墙是否允许App Service的出站IP访问。
  • 查看App Service日志定位错误

    • 进入Azure门户App Service的日志流,查看健康检查探测的请求日志,确认是否存在404、500等错误。
    • 打开诊断设置,查看健康检查相关日志,获取探测失败的具体原因,比如路由拦截、权限限制等。
  • 调整中间件顺序

    • 确保UseHealthChecks配置在UseRouting和UseAuthorization之前,避免路由或授权中间件拦截健康检查请求:
      app.UseHealthChecks("/_health", new HealthCheckOptions { Predicate = _ => true });
      app.UseRouting();
      app.UseAuthorization();
      // 其他业务中间件
      
  • 隔离数据库健康检查问题

    • 临时注释AddSqlServer健康检查代码,重新部署后观察Azure健康检查状态。若恢复正常,说明数据库连接或权限存在问题:
      • 确认App Service应用设置中的连接字符串connectStrings.Main正确。
      • 将App Service的出站IP地址添加到数据库防火墙白名单(可在App Service属性页查看出站IP)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 07:32:39