问题描述
在使用Azure App Service时候,我们有时候对 一些请求发生错误毫无头绪,能从错误代码中知道请求错误,但是更多的信息呢? 当我们需要更多的信息时候,通常有以下的一些方式来查找问题:
- 在浏览器中开启开发者模式(F12),查看Network的记录,分析那些请求错误,找出请求Header及Response...
- 使用Fiddler抓取本机发出的请求记录...
- 在代码中添加更多的业务日志,查看代码运行到哪一行才出现错误...
- 使用Postman发送请求,验证是否时请求的Header或Body不匹配...
但是,Azure App Service作为PaaS服务(平台即服务),提供了非常有帮助的错误请求日志 - FREB日志。 以下的内容就介绍如何开启Freb日志,如何查看日志,及在日志中能发现有用的信息。
开启FREB日志
进入App Service的App Service logs页面,开启Failed request tracing。
查看FREB日志
一:登录Kudu站点 (App Service --> Advanced Tools 页面 --> GO 或者在app Service的URL中添加.scm,如:https://xxxxxxxxxxxx.scm.chinacloudsites.cn)
二:进入D:\home\LogFiles\W3SVC开头的目录,选中如错误请求时间点匹配的文件,点击右边的“下载按钮”,FREB日志显示为可阅读格式。
(注:如需要拷贝出去,当需要友好的阅读体验时,也需要在同一目录文件中包含freb.xml文件)
从FREB中分析内容
查看Request在IIS中最终所到达时候的Header信息,是否有缺少默写敏感的信息,如Authorization。
查看Request的所经历的Module及错误代码