【Azure App Service】为什么启用 Health Check 后应用服务实例持续显示 Unhealthy?

问题描述

使用App Service的Health Check功能,导致实例状态Unhealthy,重启也不能解决问题。

image

这是什么情况呢?

问题解答

根据Health Check所配置的path,分别使用http和https进行访问,检查请求的响应是否属于 200 ~ 299 之间。

image

对于 App Service For Windows 应用,默认情况下,Health Check ping 请求的端口号是 80 (即 http),如果应用代码中会自动执行http 到https的跳转,导致Health Check认为实例不正常,标记为Unhealthy。如果开启了HTTPS Only,则Health Check会通过443端口(https)发送请求。

以.NET Core的代码为例, app.UseHttpsRedirection() 就会自动把http调转到https

可以通过设置App Service只支持HTTPS访问来解决此问题。

image 

 

 

参考资料

使用运行状况检查监视应用服务实例 :https://docs.azure.cn/zh-cn/app-service/monitor-instances-health-check?tabs=dotnet

 

posted @ 2026-02-14 17:05  编码者卢布  阅读(5)  评论(1)    收藏  举报