Fiddler是一个HTTP调试代理服务器. 它可以记录下电脑和Internet的所有HTTP通讯.Fiddler可以监控所有HTTP通讯,设置断点,并且操作收入\传出的数据.
在CRM疑难排查的过程中,Fiddler是一个很好的排查客户端的工具.CRM环境中,客户端和服务器的通讯就是通过HTTP\HTTPS,而这些都可以被Fiddler诊断出其处理结果是否成功并以友好的方式呈现出来.需要用到Fiddler调试的疑难情况一般为:
- 在CRM应用程序里面的的某些操作失败,并遇到具体错误信息:fiddler可以诊断出这些操作后面的哪些URL被成功处理了,哪些失败了并引发了这个错误信息,比如:
- 更改用户所属部门的动作失败
- 共享联系人的动作失败
- 特定IE客户端才发生的问题: 其他IE客户端工作正常,确定只有特定的IE客户端才会产生问题,那么有可能是这台IE浏览器的问题,比如:
- 特定的某些IE端访问CRM速度很慢
- 在其他IE客户端端可以完成的动作在这个IE端失败
- 还有其他很多情况,收集到Fiddler日志会极大地帮助排查疑难的根结
本文讲主要介绍Fiddler的具体使用方法. 本博客已经在两篇文章中介绍了Fiddler的工作原理.请参见:
Fiddler – 第一部分: HTTP调试
http://blogs.technet.com/b/crmchina/archive/2012/05/20/fiddler-http.aspx
Fiddler - 第二部分: HTTP性能
http://blogs.technet.com/b/crmchina/archive/2012/09/24/fiddler.aspx
如何使用Fiddler处理CRM HTTP通讯
- 从Fiddler官网下载Fiddler http://www.fiddler2.com/fiddler2/
- 在CRM客户端机器上安装Fiddler
- 通过开始>所有程序>Fiddler2,启动Fiddler
- 运行CRM并做出一些数据访问动作
- 回到Fiddler界面,将会发现Fiddler已经记录下来HTTP请求和请求的返回结果: 左边Web Session是HTTP请求列表,右边是HTTP请求的具体数据和内容
如何使用Fiddler处理CRM HTTPS通讯
在一些情况下CRM通讯是通过加密的方式,如CRM Online或者CRM On-Premise配置了SSL加密通讯.为了疑难排查,可以设置Fiddler来解密SSL通讯.
注意:
- 开启Fiddler的SSL解密,将会对所有的SSL通讯进行解密分析,包括用户名和密码.
- 在每次使用Fiddler排查HTTPS后,请参照下面”取消Fiddler对HTTPS解密”章节取消SSL解密,这样将不会有任何的安全隐患.
- 从Fiddler官网下载Fiddler http://www.fiddler2.com/fiddler2/
- 在CRM客户端机器上安装Fiddler
- 通过开始>所有程序>Fiddler2,启动Fiddler
- 打开Fiddler>Tools>Fiddler Options,在HTTPS选项卡,勾选” Decrypt HTTPS traffic”
Fiddler会弹出两个窗口询问是否信任Fiddler并安装证书已解密HTTPS通讯.选择Yes和是,并在Fiddler Options窗口选择OK.
5. 运行使用HTTPS通讯的CRM,并做出一些数据访问动作
6. 回到Fiddler界面,将会发现Fiddler已经记录下来对CRM数据访问过程中的HTTPS请求和请求的放回结果: 左边Web Session是HTTP请求列表,右边是HTTP请求的具体数据和内容
取消Fiddler对HTTPS解密
在使用Fiddler结束后,应该取消Fiddler对HTTPS的解密以及移除Fiddler安装在IE的证书.具体步骤为:
- 通过开始>所有程序>Fiddler2,启动Fiddler
- 打开Fiddler>Tools>Fiddler Options,在HTTPS选项卡,取消勾选” Decrypt HTTPS traffic”
- 点击”Remove Interception Certificates”, fiddler会弹出消息确认是否要移除Fiddler证书.选择是,并在Fiddler Options窗口选择OK.
- 到IE的Internet Options查看证书是否被成功移除: IE>工具>Internet选项>内容选项卡>证书, 查看并确认个人和受信任的根证书颁发机构不包含Fiddler证书,如果有,则手动移除掉.
- Fiddler对HTTPS解密应该已经被取消.可以打开Fiddler,做HTTPS访问来确认Fiddler没有再记录HTTPS请求内容.
Leola Xu许亚男