问题描述

经过如何排查应用程序网关返回 HTTP Code 502 或客户端得到应用程序网关响应慢的问题(一)中的排查步骤,可以判断出是由于 Web 服务器自身问题导致的响应异常。

那么可以在 IIS 中开启 failed request tracing (以下以 FRT 代称) 功能来跟踪并分析此响应异常的原因。

具体步骤参考如下(本文以 Windows Server 2012 为例):

  1. 系统管理工具中开启 FRT

  2. 开启后,可以在 IIS manager 中对应的 sites 的面板中看到 Failed Request Tracing 选项,再在右侧的 action 面板中配置 FRT 的 rule。

  3. 配置 rule 之前,先开启并配置 trace file 最大数量:

  4. 配置 FRT rule:

    1. 配置匹配请求内容后缀:

      这里为了尽量缩小诊断范围,可以考虑针对有问题的 URL 的请求配置匹配文件后缀名。

    2. 配置匹配条件:

      这里有三种,status code,Timetaken,以及 event severity,这里的条件之间是与的关系,例如可以使针对 HTTP Response Code 200 但是 Timetaken 时间超过 5 秒的请求做 tracing.

    3. 配置跟踪提供程序:

    4. 配置完成后:

  5. 一旦问题出现,%SystemDrive%\inetpub\Logs\FailedReqLogFiles\ 下面会有 .xml 文件生成,一个 .xml 文件对应一次请求的 tracing,请根据时间戳判断要分析的是哪一个请求。

  6. 建议使用浏览器打开,如果要此 .xml 文件复制到其他 server 上分析,建议连通 freb.xsl 一起复制过去,因为此文件是 FRT log 的格式文件,当使用浏览器打开时,会按照此文件中的格式编排,可读性比较好。

  7. 打开任务管理器,记录当前 IIS 进程的 PID:

    如果是多站点,可以根据应用程序池的名字来判断有问题的站点的进程的 PID。

  8. 再打开 FRT 的 .xml,可以根据 PID 来确认:

  9. 接下来可以点击 Request Details 来分析具体是哪一个环节 timetaken 长导致的延迟响应,从而锁定问题范围:

以上可以看到,trace 信息中将此请求的每一个细部均列出,并计算出每一步所花费的时间即 Timetaken,以及请求和返回信息的细节,如 header,handler 信息:

通过 trace 信息,可以帮助应用开发人员判断问题出在哪里,是否需要调整应用代码,或是调整哪部分代码,为最终解决此 web 应用本身的问题提供了必要信息。

Azure-如何排查应用程序网关返回 HTTP Code 502 或客户端得到应用程序网关响应慢的问题(二)的更多相关文章

  1. 为什么现在很多年轻人愿意来北上广深打拼,即使过得异常艰苦,远离亲人,仍然义无反顾? 谈谈程序员返回家乡的创业问题 利基市场就是那些不大不小的缝隙中的市场 马斯洛的需求无层次不适合中国。国人的需求分三个层次——生存、稳定、装逼。对应的,国内的产品也分三个层次——便宜、好用、装B。人们愿意为这些掏钱

    信念.思考.行动-谈谈程序员返回家乡的创业问题 昨天晚上在微博上看了篇 <为什么现在很多年轻人愿意来北上广深打拼,即使过得异常艰苦,远离亲人,仍然义无反顾?>,有些话想说. 感觉很多人的担 ...

  2. 微信小程序支付返回信息为空

    1.昨天公司说要实现微信小程序的支付,于是看了下微信小程序的开发api文档,和之前的app  端以及pc端基本相似:于是让他们把参数改了下,把之前的trade_type 由 app 改成 小程序要求的 ...

  3. Azure Front Door(三)启用 Web Application Firewall (WAF) 保护Web 应用程序,拒绝恶意攻击

    一,引言 上一篇我们利用 Azure Front Door 为后端 VM 部署提供流量的负载均衡.因为是演示实例,也没有实际的后端实例代码,只有一个 "Index.html" 的静 ...

  4. TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误 TNS-00511: 无监听程序

    文章转自:http://www.luocs.com/archives/464.html 此文版权归作者 – yaogang所有,转载请注明yaogang©www.luocs.com. Luocs说:这 ...

  5. 搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)

    搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating ...

  6. 用 MVC 5 的 EF6 Code First 入门 系列:MVC程序中实体框架的Code First迁移和部署

    用 MVC 5 的 EF6 Code First 入门 系列:MVC程序中实体框架的Code First迁移和部署 这是微软官方SignalR 2.0教程Getting Started with En ...

  7. 小程序版好友对战实战-wss部署与小程序用户登录时序

    上一篇文章是对需求的分析,本次将逐渐进入代码阶段.本次主要的内容包括服务端wss的部署以及小程序端用户授权的时序及逻辑. wss的配置与部署 微信小程序出于安全考虑,要求所有涉及到网络的操作,必须使用 ...

  8. 微信小程序通过api接口将json数据展现到小程序示例

    这篇文章主要介绍了微信小程序通过api接口将json数据展现到小程序示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧实现知乎客户端的一个重要知识前提就是,要知道怎么通过 ...

  9. 百度定位SDK 返回error code : 162 latitude : 4.9E-324 lontitude : 4.9E-324

    Android应用使用百度定位SDK 返回error code : 162 latitude : 4.9E-324 lontitude : 4.9E-324 在使用百度定位SDK时遇到一个非常郁闷的问 ...

随机推荐

  1. golang xorm应用

    github.com/go-xorm/xorm  xorm库 http://www.xorm.io/docs/ 手册 xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便.xo ...

  2. 知乎live考研数学冲刺135+资料分享

    前言 各位学弟学妹,您好,live中本来是给出了我的邮箱,通过邮箱来获取资料,但是没有想到,后来我每天打开邮箱,都是需要回复的邮件,少则一两封,多则四五封,每天如此,也是一个比较繁琐费时的方式.我决定 ...

  3. Jmeter之断言

    Jmeter中的断言类似于LR中的检查点,是在请求的返回层面上加的一个判断机制.因为请求成功了,不代表结果就一定是对的,还要看返回(LR中亦如此,脚本回放没报错,不代表你的业务成功了,需要自己去相应的 ...

  4. python通过cx_oracle操作数据库过程简单记录

    1.环境配置 环境配置过程中,需要关注软件版本是否一致,主要包括:oracle客户端版本.cx_oracle版本.python版本: 2.操作记录 (1)验证环境是否正常:(无报错即为正常) impo ...

  5. iOS 多线程:『RunLoop』详尽总结

    1. RunLoop 简介 1.1 什么是 RunLoop? 可以理解为字面意思:Run 表示运行,Loop 表示循环.结合在一起就是运行的循环的意思.哈哈,我更愿意翻译为『跑圈』.直观理解就像是不停 ...

  6. ORM增删改查(django)

    单表操作: 一.添加 (1)方式一 from  mysite.models  import * def  add(request): book= Book(name="python" ...

  7. 有关ajax

    1.什么是ajax? ajax是前端与后端交互所依赖的一项技术,它相当于一座桥梁,沟通了前端与后端. 2.ajax的优点 可以局部更新网页内容. 3.ajax的本质就是xmlHttpRequest对象 ...

  8. SEO优化上首页之搜索引擎作弊案例与反作弊原理

    搜索引擎流量价值巨大,有不少人专门研究排名机制,利用搜索引擎漏洞作弊,寻求快速提高网站排名,进而获取更多的流量和利益,甚至有的网站优化公司专门提供作弊服务.搜索引擎为了杜绝这种情况,必须能过滤大量垃圾 ...

  9. ADI高速信号采集芯片与JESD204B接口简介

    ADI高速信号采集芯片与JESD204B接口简介 JESD204B接口 介绍: JEDEC Standard No. 204B (JESD204B)—A standardized serial int ...

  10. 第五周加分题--mybash的实现

    第五周加分题--mybash的实现 题目要求 1.使用fork,exec,wait实现mybash 2.写出伪代码,产品代码和测试代码 3.发表知识理解,实现过程和问题解决的博客(包含代码托管链接) ...