The main SQL Server ( 2000 ) at my current customer becomes overloaded at times due to month-end processing requirements, etc.

This can be really irritating when you're trying to create new CRM Entities, which is one of the most intensive database tasks you can do to CRM.

The errors you will see when the operation times out will vary, but usually result in a Timeout message, or one of the famous, "An error has occurred. Contact your system administrator."

Enabling CRM Tracing has shown that we're getting timeouts to the database or by the .NET process aborting its thread.  Either way, an error will be produced.

I researched the situation about two weeks ago and came across a really fine article from Simon Hutson on what, at first glance, seems to be a totally unrelated topic. However, it is very much related and after running the changes on my test box for a while, I detemined it was safe to install them in production.

The changes did indeed prevent errors from occurring, but if there was a delay, you will be setting at the little yellow "saving" status box for quite a while. Maybe several minutes. But, I think a delay is better than seeing an error message.

Note: I'm going to make a very broad assumption that I don't need to tell you to use caution when making registry changes, make backups, etc.

  

Step1:

There are three changes that need to be made to the registry. I've attached a ZIP file to this article that has the .REG files ready to use.

Step 2:

Open the web.config file for your CRM web site and increase the executionTimeout to a larger amount. I chose 900 seconds:

httpRuntime executionTimeout="900" 

Step 3:

Reboot the CRM server.

  

References:

Microsoft CRM 3.0 setup error and TCP/IP ephemeral ports

Download: Reg Files