【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]
【Azure 应用服务】App Service的运行状况检查功能失效,一直提示"实例运行不正常"的更多相关文章
- ASP.NET Core中的运行状况检查
由卢克·莱瑟姆和格伦Condron ASP.NET Core提供了运行状况检查中间件和库,用于报告应用程序基础结构组件的运行状况. 运行状况检查由应用程序公开为HTTP终结点.可以为各种实时监视方案配 ...
- 【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))
问题情形 当应用在Azure 应用服务App Service中运行时,有时候出现CPU,Memory很高,但是没有明显的5XX错误和异常日志,有时就是有异常但是也不能明确的指出具体的代码错误.当面临这 ...
- 【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
测试App Service是否可以访问其他DNS 当应用服务(Azure App Service)创建完成后,想通过ping命令来查看是否可以访问其他站点或解析DNS,但是发现ping命令无法使用.这 ...
- 【应用服务 App Service】App Service中抓取网络日志
问题描述 众所周知,Azure App Service是一种PaaS服务,也就是说,IaaS层面的所有内容都由平台维护,所以使用App Service的我们根本无法触碰到远行程序的虚拟机(VM), 所 ...
- 微服务中的健康监测以及其在ASP.NET Core服务中实现运行状况检查
1 .什么是健康检查? 健康检查几乎就是名称暗示的.它是一种检查您的应用程序是否健康的方法.随着越来越多的应用程序转向微服务式架构,健康检查变得尤其重要(Health Check).虽然微服务架构有很 ...
- 【应用服务 App Service】Azure App Service 中如何安装mcrypt - PHP
问题描述 Azure App Service (应用服务)如何安装PHP的扩展 mcrypt(mcrypt 是php里面重要的加密支持扩展库) 准备条件 创建App Service, Runtime ...
- 【应用服务 App Service】解决无法从Azure门户SSH登录问题
问题描述 中国区的Azure App Service(应用服务)已经支持创建Docker并选择Linux环境.在使用中,我们可以继续通过kudu站点的方式登录查看站点的一些日志及部署文件.它的登录方式 ...
- 【应用服务 App Service】在Azure App Service中使用WebSocket - PHP的问题 - 如何使用和调用
问题描述 在Azure App Service中,有对.Net,Java的WebSocket支持的示例代码,但是没有成功的PHP代码. 以下的步骤则是如何基于Azure App Service实现PH ...
- 【应用服务 App Service】当使用EntityFrameWorkCore访问Sql Server数据库时,在Azure App Service会出现Cannot create a DbSet for ** because this type is not included in the model for the context的错误
问题情形 使用EF Core访问数据库,在本地运行正常,发布到App Service后,偶尔出现了Cannot create a DbSet for ** because this type is n ...
- 【应用服务 App Service】发布到Azure上的应用显示时间不是本地时间的问题,修改应用服务的默认时区
问题情形 应用程序发布到App Service后,时间显示不是北京时间,默认情况为UTC时间,比中国时间晚 8 个小时. 详细日志 无 问题原因 Azure 上所有的服务时间都采用了 UTC 时间. ...
随机推荐
- openEuler technical-certification
https://gitee.com/meitingli/technical-certification/ 介绍 存放openEuler技术测评相关的文档,包括技术测评标准.流程.指导性文档等 技术测评 ...
- Oracle Linux7 与Oracle Linux8 下载rpm包的位置
Oracle Linux 7 http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/index.html 索引页 http://yum.or ...
- K3S +Helm+NFS最小化测试安装部署只需十分钟
作者:郝建伟 k3s 简介 官方文档:k3s 什么是k3s k3s 是一个轻量级的 Kubernetes 发行版 它针对边缘计算.物联网等场景进行了高度优化. k3s 有以下增强功能: 打包为单个二进 ...
- 【VMware vSAN】使用命令行从vSAN集群中移除ESXi主机并加入到新的vSAN集群。
说明 本文只是陈述了一种方法,不必评判谁对谁错谁好谁坏,选择适合自己的即可. 环境 站点名称 vCenter版本 vSAN集群 集群主机 主机版本 磁盘组 vcsa67.lab.com vCenter ...
- (数据科学学习手札157)pandas新增case_when方法
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,pandas在前不久更新的2. ...
- 安装和定位vimrc
在上一篇文章中,我们简单开了一个头,阐述了下学习vim的必要性,这章开始,会慢慢由浅入深的学习它的一套完整的,高效的文本编辑方式方法.废话不多说,咱们正式开始吧 安装NeoVim 相对于vim来说,n ...
- TienChin 代码格式化-项目结构大改造
代码格式化 博主下载项目之后发现,整体的代码格式化风格,与 C 那种语言很相似,说明这个作者之前就是从事这块的导致风格有点类似,我们来格式化一下,当然这不是必要的,我是没习惯这种写法所以这里我写一下我 ...
- Docker 安装与升级
卸载旧版本 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest ...
- Oracle ADG + Keepalived 切换演练
客户的一套生产环境采用的架构是Oracle ADG + Keepalived,近期需要进行切换演练,要求我这边保障.ADG本身切换倒没啥可说的,但引入keepalived软件,就需要提前研究下这个架构 ...
- AT_abc270_g [ABC270G] Sequence in mod P 题解
题目传送门 前置知识 大步小步算法 解法 递推式为 \(x_{n}=(ax_{n-1}+b) \bmod p\),发现可以统一消去 \(\bmod p\) ,只在最后参与计算.以下过程省去模运算. 当 ...