When you import large customization files into Microsoft Dynamics CRM 2011 or into Microsoft Dynamics CRM 2013, or into Microsoft Dynamics CRM 2015 time-out occurs. Additionally, you receive one of the following error messages.
Types of Errors will be
Error message 1: Import timeout error
Error message 2: The file could not be uploaded or import failed
Error message 3: Maximum request length exceeded
Error message 4: This is not a valid customization file. Please use and XML file that was generated by exporting customizations.
If the DevErrors value is set to "On" in the Web.config file, you receive the following error message:
Microsoft CRM Platform Error Report:
Error Description: Timeout expired
Error Details: Details on this error have not been provided by the platform.
Error Number: 0x80040E31
Reason for the issue is:
This problem occurs because one of the following conditions is true:
- The time that is used for importing the customization files or for upgrading Microsoft Business Solutions - CRM exceeds the default OLEDBTimeout value in Microsoft Dynamics CRM for the computer that is running Microsoft SQL Server.
- The time that is used for importing the customization files or for upgrading Microsoft CRM exceeds the ExtendedTimeout value that is used for long-running operations.
- The ExtendedTimeout registry entry on the Microsoft Dynamics CRM server should not be set to a value that is larger than 2,147,483,647. That is the maximum value that the ExtendedTimout registry entry can use.
- Importing customization files can be a long-running operation.
- The size of the Customization.xml file is larger than 7.5 megabytes (MB).
- The Customization.xml file is created when you export custom entities.
- By default, Microsoft ASP.NET limits the HTTP request size to 8 MB.
The OLEDBTimeout value
The unit of the OLEDBTimeout value is seconds. By default, the OLEDBTimeout value is 30 seconds. The OLEDBTimeout value controls the SQL time-out value that is used for a single SQL query. The increased OLEDBTimeout value is useful when the SQL server is overloaded. Additionally, the query takes a longer time to process.
The ExtendedTimeout value
The unit of the ExtendedTimeout value is milliseconds. By default, the ExtendedTimeout value is 1000000 milliseconds. The ExtendedTimeout value controls the ASP.NET time-out value that is used for import requests. The time-out value must be larger than the time for finishing the whole import process. The increased ExtendedTimeout value is useful when the import process takes a long time.
Note When the performance of the SQL server is slow or when there are many customization files to import, the import process takes a long time.
Resolution to solve this issue is:
To resolve this problem, use one or more of the following methods.
Method 1: Add the OLEDBTimeout and the ExtendedTimeout registry subkeys to increase the time-out values
Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall your operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.
1. Click Start, click Run, type regedit, and then click OK.
2. Locate the following registry subkey:
3. Right-click MSCRM, point to New, and then click DWORD Value to create a new DWORD value.
4. Rename the DWORD value to the following value:
NOTE: This value is case sensitive
5. Right-click the DWORD value, and then click Modify.
6. In the Edit DWORD Value dialog box, type 86400 in the Value data box, click Decimal in the Base option, and then click OK.
According to the requirement of the computer that is running SQL server and the number of customization files, the value can be larger than 86400. The value of 86400 is equivalent to 24 hours. This should only be done temporarily or as a troubleshooting step. The recommended value of this is between 30 and 300. Leaving this setting too high can result in performance issues.
7. Right-click MSCRM, point to New, and then click DWORD Value to create a new DWORD value.
8. Rename the DWORD value to the following value:
9. Right-click the DWORD value, and then click Modify
10. In the Edit DWORD Value dialog box, type 1000000 in the Value data box, and then click OK.
In the Value data box, you can type a value that is larger than 1,000,000. However, do not type a value that is larger than 2,147,483,647. This is hexadecimal 0x7FFFFFFF.
Important: If this key already exists, notice the current value. After you have completed the import or the upgrade for Microsoft Dynamics CRM, set the value of this key back to the original value or delete the key if it did not previously exist. The default OLEDBTimeout value is 30 seconds.
Method 2: Modify the parameters in two different Web.config files
1. Click Start, click All Programs, click Administrative Tools, and then click Internet Information Services (IIS) Manager.
2. Expand the server name, and then expand Web Sites.
3. Right-click the Microsoft CRM v3.0 Web site or the Microsoft CRM v4.0 Web site, and then click Open.
4. Right-click the Web.config file, click Open With, and then click Notepad.
5. In Notepad, locate the following line.
<httpRuntime executionTimeout="300" maxRequestLength="8192"/>
6. Change executionTimeout="3600" and change maxRequestLength="20000".
7. Save and then close the Web.config file.
8. In the directory in which you opened the Web.config file, open the MSCRMServices folder.
9. Right-click the Web.config file, click Open With, and then click Notepad.
10. In Notepad, locate the following line.
11. Change maxRequestLength="20000".
12. Save and then close the Web.config file.
Important: After completing the action that requires the above changes to the web.config file, these parameters should be reset to their default values.