启用WCF压缩提升Dynamics 365 CE的网络性能
摘要: 微软动态CRM专家罗勇 ,回复307或者20190308可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me 。
本文系根据微软MSDN 博客的博文 Enable WCF Compression to Improve CRM 2011 Network Performance 而写,当时文章是针对Dynamics CRM 2011而写,那么针对Dynamics 365 Customer Engagement适合吗?我这里用我自己的 9.0.2.3034 版本来尝试下。
调用的程序很简单,就是C#写了一个控制台程序,使用组织服务执行FetchXml获取数据,当然我用Fiddler进行了抓包。
设置前用WCF压缩前的第一次抓包数据如下:
Request Count: 1
Bytes Sent: 12,864 (headers:250; body:12,614)
Bytes Received: 11,557 (headers:273; body:11,284)
ACTUAL PERFORMANCE
--------------
ClientConnected: 13:49:12.376
ClientBeginRequest: 13:49:13.035
GotRequestHeaders: 13:49:13.035
ClientDoneRequest: 13:49:13.386
Determine Gateway: 0ms
DNS Lookup: 0ms
TCP/IP Connect: 0ms
HTTPS Handshake: 0ms
ServerConnected: 13:49:12.768
FiddlerBeginRequest: 13:49:13.387
ServerGotRequest: 13:49:13.388
ServerBeginResponse: 13:49:13.697
GotResponseHeaders: 13:49:13.697
ServerDoneResponse: 13:49:13.697
ClientBeginResponse: 13:49:13.697
ClientDoneResponse: 13:49:13.698
Overall Elapsed: 0:00:00.663
RESPONSE BYTES (by Content-Type)
--------------
application/soap+xml: 11,284
~headers~: 273
设置启用WCF压缩前的第二次抓包数据如下:
Request Count: 1
Bytes Sent: 12,908 (headers:250; body:12,658)
Bytes Received: 11,557 (headers:273; body:11,284)
ACTUAL PERFORMANCE
--------------
ClientConnected: 13:49:47.303
ClientBeginRequest: 13:49:47.752
GotRequestHeaders: 13:49:47.752
ClientDoneRequest: 13:49:48.103
Determine Gateway: 0ms
DNS Lookup: 0ms
TCP/IP Connect: 0ms
HTTPS Handshake: 0ms
ServerConnected: 13:49:47.497
FiddlerBeginRequest: 13:49:48.104
ServerGotRequest: 13:49:48.105
ServerBeginResponse: 13:49:48.287
GotResponseHeaders: 13:49:48.305
ServerDoneResponse: 13:49:48.305
ClientBeginResponse: 13:49:48.305
ClientDoneResponse: 13:49:48.309
Overall Elapsed: 0:00:00.557
RESPONSE BYTES (by Content-Type)
--------------
application/soap+xml: 11,284
~headers~: 273
然后我用文中介绍的执行命令的方法来更改,以管理员身份打开 cmd ,执行如下命令:
%SYSTEMROOT%/system32/inetsrv/appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/soap+xml; charset=utf-8',enabled='true']" /commit:apphost

再执行下IISRESET命令以便更改生效,再次测试。
设置启用WCF压缩后的第一次抓包数据如下:
Request Count: 1
Bytes Sent: 12,864 (headers:250; body:12,614)
Bytes Received: 1,699 (headers:319; body:1,380)
ACTUAL PERFORMANCE
--------------
ClientConnected: 14:05:21.045
ClientBeginRequest: 14:05:26.227
GotRequestHeaders: 14:05:26.227
ClientDoneRequest: 14:05:26.577
Determine Gateway: 0ms
DNS Lookup: 0ms
TCP/IP Connect: 0ms
HTTPS Handshake: 0ms
ServerConnected: 14:05:26.009
FiddlerBeginRequest: 14:05:26.577
ServerGotRequest: 14:05:26.578
ServerBeginResponse: 14:05:26.870
GotResponseHeaders: 14:05:26.870
ServerDoneResponse: 14:05:26.870
ClientBeginResponse: 14:05:26.870
ClientDoneResponse: 14:05:26.871
Overall Elapsed: 0:00:00.643
RESPONSE BYTES (by Content-Type)
--------------
application/soap+xml: 1,380
~headers~: 319
设置启用WCF压缩后的第二次抓包数据如下:
Request Count: 1
Bytes Sent: 12,864 (headers:250; body:12,614)
Bytes Received: 1,700 (headers:319; body:1,381)
ACTUAL PERFORMANCE
--------------
ClientConnected: 14:06:46.012
ClientBeginRequest: 14:06:46.474
GotRequestHeaders: 14:06:46.474
ClientDoneRequest: 14:06:46.825
Determine Gateway: 0ms
DNS Lookup: 0ms
TCP/IP Connect: 0ms
HTTPS Handshake: 0ms
ServerConnected: 14:06:46.208
FiddlerBeginRequest: 14:06:46.825
ServerGotRequest: 14:06:46.826
ServerBeginResponse: 14:06:47.025
GotResponseHeaders: 14:06:47.025
ServerDoneResponse: 14:06:47.025
ClientBeginResponse: 14:06:47.025
ClientDoneResponse: 14:06:47.026
Overall Elapsed: 0:00:00.551
RESPONSE BYTES (by Content-Type)
--------------
application/soap+xml: 1,381
~headers~: 319
可以看到的是,压缩比非常高,启用之前客户端收到的字节数在 11,557左右,启用压缩后收到的字节数是 1,700,只有原来的 14.7%左右,压缩比很高。

再来看下从ServerConnected到ClientDoneResponse的时间,四次分别花了:930ms, 812ms, 862ms, 818ms, Overall Ellapsed四次分别花了 663ms, 557ms, 643ms, 551ms,有点儿差别,但是不大。
启用了WCF压缩后有个值得注意的地方就是要观察服务器CPU的利用率,因为是动态内容,每次都要压缩。
启用WCF压缩提升Dynamics 365 CE的网络性能的更多相关文章
- Dynamics 365 CE Update消息PostOperation阶段Image的尝试
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- 使用Dynamics 365 CE Web API查询数据加点料及选项集字段常用查询
微软动态CRM专家罗勇 ,回复336或者20190516可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me. 紧接上文:配置Postman通过OAuth 2 implicit ...
- Use SQL to Query Data from CDS and Dynamics 365 CE
from : https://powerobjects.com/2020/05/20/use-sql-to-query-data-from-cds-and-dynamics-365-ce/ Have ...
- Dynamics 365 CE中AsyncOperationBase表记录太多,影响系统性能怎么办?
微软动态CRM专家罗勇 ,回复311或者20190311可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 本文主要是根据微软官 ...
- 安装完成Dynamics 365 CE后别忘了更改维护作业的运行时间
摘要: 微软动态CRM专家罗勇 ,回复309或者20190308可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 安装完毕Dy ...
- Dynamics 365 CE将自定义工作流活动程序集注册到磁盘并引用其他类库
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- Dynamics 365 CE中使用FetchXML进行聚合运算
微软动态CRM专家罗勇 ,回复328或者20190429可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! Dynamics 365 Customer Engagement ...
- Dynamics 365 CE命令栏按钮点击后刷新表单页面方法
微软动态CRM专家罗勇 ,回复326或者20190428可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! Dynamics 365 Customer Engagement ...
- 做了面向互联网部署的Dynamics 365 CE更改AD FS的登录页面
摘要: 微软动态CRM专家罗勇 ,回复306或者20190307可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 默认情况下A ...
随机推荐
- SQL Server Cast、Convert数据类型转换
一.概述 本篇文章转载来着官网在线文档,文章主要介绍SQL Server数据类型转换相关语法.隐式转换.Date样式等. 语法 Syntax for CAST: CAST ( expression A ...
- 【RL-TCPnet网络教程】第24章 RL-TCPnet之网络控制报文协议ICMP
第24章 RL-TCPnet之网络控制报文协议ICMP 本章节为大家讲解ICMP(Internet Control Message Protocol,网络控制报文协议),通过前面章节对TCP和 ...
- Javascript的原型继承,说清楚
一直以来对Javascript的原型.原型链.继承等东西都只是会用和了解,但没有深入去理解这门语言关于继承这方面的本质和特点.闲暇之余做的理解和总结,欢迎各位朋友一起讨论. 本文本主要从两段代码的区别 ...
- .net core通过多路复用实现单服务百万级别RPS吞吐
多路复用其实并不是什么新技术,它的作用是在一个通讯连接的基础上可以同时进行多个请求响应处理.对于网络通讯来其实不存在这一说法,因为网络层面只负责数据传输:由于上层应用协议的制订问题,导致了很多传统服务 ...
- [Python Web]常见的 POST 提交数据的方式
本文参考整理于:https://imququ.com/post/four-ways-to-post-data-in-http.html 简介 这里介绍了,用 POST 方法提交数据时,常见的三种方式: ...
- PyQt:个性化登录界面模仿QQ登录
写在前面 写了一个登录界面的demo,类似QQ的,写的自己喜欢的样式,贴一下代码,先上效果,如下 陈述 PyQt5+Python3.5.2 login.py是里登录的主界面loginWnd类,Head ...
- Chapter 4 Invitations——16
While I was sitting there, looking everywhere but at the car in front of me, I heard a knock on my p ...
- Asp.Net SignalR - 准备工作
实时通讯 在做Web的时候经常会有客户端和服务端实时通讯的需求,比如即时聊天等.目前实时通讯有很多种规范和实现方式,但是每一个对浏览器的兼容性或者性能都不是很完美. 目前主流的解决方案有 WebSoc ...
- 使用mongoskin操作MongoDB
mongoskin是一个操作MongoDB的模型工具 相当于数据库类 与之相当的还有mongoose比较出名 安装模块(特地加了版本,这里被坑过,在Ubuntu中开发的好好的,部署到线上centos中 ...
- nodejs搭建web项目
如果要使用cnpm可安装淘宝cnpm镜像(事实证明不建议使用,因为cnpm和npm有一些包不同步)npm install -g cnpm --registry=https://registry.npm ...