【Azure 应用服务】App Service的运行状况检查功能失效,一直提示"实例运行不正常"

简介: 【Azure 应用服务】App Service的运行状况检查功能失效,一直提示"实例运行不正常"

问题描述

为App Service配置了健康检查,单独访问Health Check Path的路径,返回代码为200。但为什么在App Service的页面上,一直提示“实例运行不正常”呢?

 

问题解答

通过查看Health Check Path发送的请求,当使用HTTPS的时候,直接返回200,而当使用HTTP访问时,会先进行307跳转为HTTPS,然后返回200。 而运行状态检测为正常的返回范围为 200 ~ 299。所以,如果返回302就会导致实例状态被判断为不正常。

那为什么Health Check会通过HTTP方式访问而且会发生HTTPS的转换呢?

第一点:这是因为在App Service的配置页面中,设置了HTTPS Only 为Off,也就是说:当前App Service可以通过HTTP的方式访问。

第二点:在应用代码 startup.cs 中启用了中的 app.UseHttpsRedirection();

 

因为第二点的存在,所以导致了HTTP 向 HTTPS的跳转。 如果能够注释掉 app.UseHttpsRedirection(),第一点就不需要修改。 那如果第二点修改代码不容易,就需要修改第一点【 HTTPS Only设置为On】

 

当修改HTTPS Only为On,只允许Health Check发送的请求为HTTPS后,问题解决。运行状态检测结果为正常!

 

参考资料

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

  • 运行状况检查不遵循 302 重定向。
  • 每小时最多更换一个实例,每个应用服务计划每天最多更换三个实例。
  • 如果运行状况检查的状态为 Waiting for health check response,则检查可能会由于 HTTP 状态代码 307 而失败,如果已启用 HTTPS 重定向但禁用 HTTPS Only,就可能发生这种情况。

 

[END]

相关文章
|
5天前
【Azure Logic App】使用Event Hub 连接器配置 Active Directory OAuth 认证无法成功连接到中国区Event Hub的解决之法
An exception occurred while retrieving properties for Event Hub: logicapp. Error Message: 'ClientSecretCredential authentication failed: AADSTS90002: Tenant 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' not found. Check to make sure you have the correct tenant ID and are signing into the correct cloud. Che
|
11天前
|
安全
【Azure App Service】App service无法使用的情况分析
App Service集成子网后,如果子网网段中的剩余IP地址非常少的情况下,会在App Service实例升级时( 先加入新实例,然后在移除老实例 )。新加入的实例不能被分配到正确的内网IP地址,无法成功的访问内网资源。 解决方法就是为App Service增加子网地址, 最少需要/26 子网网段地址。
|
20天前
|
C++
【Azure Logic App】使用Event Hub 连接器配置 Active Directory OAuth 认证无法成功连接到中国区Event Hub
【Azure Logic App】使用Event Hub 连接器配置 Active Directory OAuth 认证无法成功连接到中国区Event Hub
|
20天前
【Azure Logic App】在逻辑应用中开启或关闭一个工作流是否会对其它工作流产生影响呢?
【Azure Logic App】在逻辑应用中开启或关闭一个工作流是否会对其它工作流产生影响呢?
|
20天前
|
安全 前端开发 网络安全
【Azure App Service】访问App Service应用报错 SSL: WRONG_VERSION_NUMBER
【Azure App Service】访问App Service应用报错 SSL: WRONG_VERSION_NUMBER
|
开发工具 数据安全/隐私保护 安全
远程调试 Azure Web App
当我们将 Web App 部署在 Azure 上时,如果能够实现远程调试,将会极大的提高我们修复 bug 的效率。Visual Studio 一贯以功能强大、易用著称,当然可以实现基于 Azure 应用的创建、发布和调试。
1164 0