Dynamics CRM in the Field

Information from the Microsoft Dynamics CRM PFE team working in the field

CRM 2011 Outlook Client Performance Delays Caused by Expect: 100-continue Setting

CRM 2011 Outlook Client Performance Delays Caused by Expect: 100-continue Setting

Rate This
  • Comments 6

Recently I was working on a Performance Review focused on CRM 2011 Outlook Performance. When I was reviewing Fiddler traces I noticed that every WCF request had a delay of around 350ms. This delay was only happening on machines that had a slower network connection to the CRM server. The data below is captured from a machine which latency was 130ms and bandwidth of around 105KB/Sec.  The delay was occurring between ClientBeginRequest and ClientDoneRequest which is when the request is still being read on the local machine. In the following example we can see that the delay here is 359ms which accounts for 74% of the request time.

image

After working with a colleague he found that the delay was caused by a .Net setting called Expect100Continue.  He wrote the blog article  .NET HttpWebRequests and Expect: 100-continue based on this case that goes into greater detail on this setting and why it caused the delays.

NOTE: This setting is now being included as part of the most recent update rollups. If you have applied the most recent update rollup you will not need to manually disable this functionality.

Steps to Disable this Functionality.

After CRM 2011 Client is Installed
1. Navigate to “C:\Program Files (x86)\Microsoft Dynamics CRM\Client\” and open the “CrmClient{guid}.config” file in a text editor such as notepad.

2. Insert the following block of XML in the <system.Net> section of the CONFIG file. 

<settings>
     <servicePointManager expect100Continue="false" />
</settings>

3. Open Outlook and the setting will take effect immediately.

 

Before CRM 2011 Client is Installed
1. Within the CRM 2011 Client media navigate to “<CRM2011ClientMedia>\PFiles\MSCRM\Client\” and open the “CrmClient{guid}.config” file in a text editor such as notepad.

2. Insert the following block of XML in the <system.Net> section of the CONFIG file.

<settings>
<servicePointManager expect100Continue="false" />
</settings>

3. Install CRM 2011 client with this media and the setting will be included.

 

After making the changes we can see there is no longer a delay and this single request went from 483ms down to 125ms.

     

image

Impact Across Several Requests.

Below are more screenshots showing the impact across the several requests made when pulling up the Account Grid in Outlook. With this one change the subsequent Account Grid load went from 5.74s to 3.56s.

Before:

image

image

After:

image

image

 

In my testing I have had positive results. If you work in an environment which users are connecting across a high latency/low bandwidth connection they may also benefit from this.

For more information about our team or performance review service please visit our team web site.

http://www.pfedynamics.com

 

Jeremy Morlock

Microsoft Premier Field Engineer

  • Good Article Jeremy.  We might also need to look into this.

  • Does this apply to CRM 4.0 as well?

  • No, this would only apply to CRM 2011 as CRM 4.0 does not use WCF.

  • I just checked my settings and this is already there. I just installed it very recently, so I'm guessing it was part of the new install since Nov. or as part of the update that just occurred this month.

  • I have Rollup 5 installed and my settings are as above.

  • That is correct that this setting is now included by default with the latest update rollups. This will only need to be applied now if update rollups have not been installed.

Page 1 of 1 (6 items)
Leave a Comment
  • Please add 7 and 4 and type the answer here:
  • Post