There are a handful of timeout settings that can affect Dynamics CRM.  In most situations the default setting is sufficient for these and they don’t need to be changed, however, there are times (such as during an upgrade) when these might need to be adjusted to let a certain process complete, or if a user is waiting too long for a process only to fail in the end--these settings can be adjusted; they can be confusing since many have different defaults and are in different units.  Below are some of the timeout settings available with a little more detail to help clear up the confusion.

  1. Registry on CRM application server(s)
    1. HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSCRMOLEDBTimeout
      1. In seconds
      2. The OLEDBTimeout value controls the SQL time-out value that is used for a single SQL query
      3. Default is 30 seconds
    2. HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSCRMExtendedTimeout
      1. In milliseconds
      2. The ExtendedTimeout value controls the ASP.NET time-out value
      3. Default is 1,000,000
    3. HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSCRMNormalTimeout
      1. In milliseconds
      2. Specifies the SOAP call timeout for most operations
      3. Default is 300,000
  2. Web.config
    1. <httpRuntime executionTimeout="300" />
      1. .NET 3.0: “timespan” attribute.  The default is “00:01:50” (110 seconds)
      2. .NET 3.5 and 4.0: an integer in seconds.  Default is 110 seconds.
      3. Specifies the maximum number of seconds that a request is allowed to execute before being automatically shut down by ASP.NET.
  3. IIS/ASP.NET configuration
    1. IIS 6.0 -> Website Properties -> ASP.NET tab -> Edit Configuration button -> Application tab -> Request execution timeout (seconds)
      1. Related to this type of situation in CRM 4.0: http://blogs.msdn.com/b/crm/archive/2008/11/20/asp-net-2-0-50727-0-warning-event-id-1309-due-to-request-time-out.aspx
  4. When using the CRM SDK, there are also timeout settings that can be set via custom code:
    1. CRM 4.0 example:
      1. CrmService service = new CrmService();
      2. service.Timeout = 300;
      3. In milliseconds and default is 100,000
    2. CRM 2011:
      1. ServiceProxy.Timeout property (Timespan)