Enable WCF Compression to Improve CRM 2011/2013 Network Performance

If you have ever analyzed network traffic you would notice that IIS will automatically compress many types of content including images, jscript, and css pages. Compression is used improve the network performance by decreasing the number of round trips required to transfer data from the server to the client machine.

The CRM 2011 Outlook client uses WCF to retrieve data from the server. By default IIS will not compress WCF responses which have a mimeType of ‘application/soap+xml;charset=utf-8’. Since the WCF traffic is not compressed you may notice there is increased network traffic or performance is degraded when comparing CRM 2011 to CRM 4.0. Typically I have seen a 30-40% reduction in response size once compression is enabled for the WCF responses. However once SSL is enabled on the CRM website the compression can reduce the size by 80-90%.
Below is a chart showing response size before and after compression is enabled within IIS. This is captured from a non-customized CRM 2011 environment with the sample data loaded. This shows improvements when loading the various views in the Outlook client.

No CompressionCompression Compression + SSL
Activities View
Bytes Sent: 82,234
Bytes Received: 971,139
Bytes Sent: 82,234
Bytes Received: 722,786
Bytes Sent: 53,249
Bytes Received: 36,658
Accounts View
Bytes Sent: 105,084
Bytes Received: 219,102
Bytes Sent: 105,084
Bytes Received: 149,424
Bytes Sent: 67,586
Bytes Received: 25,837
Contacts View
Bytes Sent: 78,286
Bytes Received: 177,504
Bytes Sent: 78,286
Bytes Received: 122,090
Bytes Sent: 50,283
Bytes Received: 19,791
Leads View
Bytes Sent: 78,286
Bytes Received: 202,589
Bytes Sent: 78,286
Bytes Received: 141,021
Bytes Sent: 50,274
Bytes Received: 19,769

How to Enable WCF compression.

You may enable compression either by using a command line or by manually modifying the ApplicationHost.config file on the CRM Server. Below are the steps for each process.
Note: You may notice an increase in CPU utilization with compression enabled so be sure to monitor CPU accordingly.

Enable compression using a command line.

a. Open the Command Prompt on the CRM Server.
b. Run the following command:
%SYSTEMROOT%system32inetsrvappcmd.exe set config -section:system.webServer/httpCompression /+”dynamicTypes.[mimeType=’application/soap%u002bxml; charset=utf-8′,enabled=’true’]” /commit:apphost
c. Reset IIS for the setting to take effect.

Enable compression by manually updating the ApplicationHost.Config

a. On the CRM Server Navigate to: C:WindowsSystem32InetsrvConfigapplicationHost.config and open it with notepad.
b. Search for the Section: “” and in that section you should fine an entry that looks like this:

c., Below that, add the following line:

d. Save the file and reset IIS for the setting to take effect.

Note: For additional information about configuring HTTP compression, on TechNet, see the article Configuring HTTP Compression in IIS 7 at: http://technet.microsoft.com/en-us/library/cc771003(WS.10).aspx
The Optimizing and Maintaining the Performance of a Microsoft Dynamics CRM 2011 Server Infrastructure whitepaper also includes a section on HTTP compression .

2019-03-11T22:07:50+00:00