使用Fiddler排查CRM疑难

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 – 第二部分: HTTP性能

HTTP性能: 总览 所有的用户都喜欢在高速状态访问网站. 用户都是没有耐心的. 如果它的性能欠佳, 除非你的网站没有其他任何竞争对手, 否则用户是不愿意多停留在你的网站的. 如果你的网站是面向全球的访问者, 保证你的网站能有效率的运行就更加重要了, 因为要考虑到国际化网络常常会受到两个因素影响: 高延迟和低带宽. 有很多的方式可以提高你网站的性能:压缩技术,缓存,基于地理位置的负载平衡,增加硬件等到.优化压缩和缓存常常是最好用的方式,由于它们涉及的改变一般都是免费的,而且可以达到显著的效果. 在这篇文章,我们将使用Fiddler HTTP Debugger来研究HTTP性能,缓存和压缩技术.   调整”第一次访问”的性能 用户对你网站的第一次访问是非常重要的.访问者需要下载每一点的信息来生产网页,包括Jscript,CSS,图片和HTML.如果你的网页加载地太慢,访问者也许在它完成加载之前就离开了页面. 通过显示所有的 HTTP通讯,Fiddler可以轻松地显示用来生成一个页面所涉及的文件.在HTTP会话列表,Shift+点击多个记录可以计算”加载页面权重”-请求的数量和传输的字节.   图1. Fiddler’s数据视图   为了提供一个”哇,这个真的很快”第一印象,最好的方式就是递送更少和更小的文件. 高速的首次访问的技巧: 用更少的图像 提取式样到一个独立的CSS文件 提起脚本块到一个独立的JS文件 简化页面布局 使用HTTP压缩 只要你能提供一个高速的首次浏览体验,你就可以通过HTTP缓存为回头客来提供更快的性能.   HTTP缓存介绍 有两个提高你的网站速度的要素: 减少请求\响应回传的次数 减少服务器和客户端传输的字节数量 HTTP缓存是减少双程回传和字节传输的最好方式之一.缓存为客户端或者代理提供了一个机制,可以存储HTTP响应内容以方便后续需要,这样请求就不需要再次通过网络. 除了性能调优,最大化的利用HTTP缓存的优势还来自于网络带宽是收费的.为一个微软的主站调节缓存可以每个月节省$10,000的传出带宽开销.   缓存相关的请求头 为了提高性能,微软IE浏览器和其他的Web客户端会在本地维护从远处web服务器下载的缓存资源. 当客户端需要一个资源的时候,有三种可能的动作: 发送一个直白的HTTP请求向远成Web服务器请求一个资源 发送一个条件型的HTTP请求,当且仅当请求的资源和本地缓存的版本不一致时才到初始服务器获得该资源 当请求的资源存在一个本地缓存副本的时候,使用本地缓存版本的资源 当发送一个请求的时候,客户端也许需要用到下面的头:   表 1. 客户端缓存头 Pragma: no-cache 客户端不倾向于接受任何带有缓存的响应,必须每次都联系初始服务器获取一个全新的资源. If-Modified-Since: datetime…


Fiddler – 第一部分: HTTP调试

介绍 有没有一直好奇微软的Internet Explorer浏览器是如何与Web程序进行交互的?有没有遇到过奇怪的性能瓶颈难以找到原因?是不是好奇哪些cookies被传送,或者哪些下载内容是可以被标记为’可以缓冲’的? Fiddler可以解答这些问题.Fiddler是一个HTTP调试代理服务器. 它可以记录下电脑和Internet的所有HTTP通讯.Fiddler可以监控所有HTTP通讯,设置断点,并且操作收入\传出的数据.Fiddler比NetMon或者其他的网络调试工具都要简单,因为它只是暴露HTTP通讯内容. Fiddler包括了一个简单但是功能强大的基于Microsoft Jscript.NET脚本的子系统,它可以非常便捷的支持各种HTTP调试任务.Fiddler是用C#语言在Microsoft .Net框架上开发的工具.     开始 安装 – Fiddler要求Microsoft Windows 2000或者更高的系统版本,大约10M的硬盘空间 – 操作系统需要安装有.Net Framework1.1 – 下载Fiddler在http://www.fiddlertool.com – 成功安装后,你可以在IE的工具栏里看到Fiddler的图标- 如果IE的工具栏没有Fiddle图标,右击IE工具栏,点击定制化,选择Fiddler图标;也可以在开始菜单找到Fiddler 运行Fiddler 启动Fiddler之后,它会把自己注册成Microsoft Internet Service(WinInet)的系统代理 – WinInet是为IE, Microsoft Office和其他很多产品公用的HTTP层的服务.检查Fiddler是不是在成功的截取HTTP请求,可以通过:打开IE>工具>Internet选项>连接>Lan Settings>高级选项.下图代表成功. 图示1. Internet Explorer代理设置   作为系统代理,所有通过WinInet的HTTP请求都会通过Fiddler去连接它的目标Web服务器.反之亦然,所有HTTP响应也都会先通过Fiddler再到达客户端 图示2. HTTP通信流  当你关闭Fiddler,它会先注销自己作为系统代理的角色,然后关闭程序.     使用Fiddler 视图 Fiddler的使用界面包括了HTTP会话列表和多个选项卡.在这些选项卡中,可以浏览选中会话的的各种信息. 图示3. Fiddler的用户界面 窗口左边部分: HTTP会话列表 窗口右边Statics: 显示选中HTTP会话的数据 窗口右边Inspector: 该选项卡可以以不同的格式查看每个请求和响应的内容 窗口右边AutoResponder:…

1