In some cases though the timeout in Enterprise Tester may be set very high, but timeout's still occur much earlier than the configured timeout period - normally after approximately 20 minutes of idle time. This normally affects IIS6 & IIS7, and is predominantly caused by the application pool "idle timeout" period due to Enterprise Tester's default usage of "in-proc" state session storage. 

There are a couple of approaches to resolving this problem: 

  1. Increasing the idle timeout for the application pool.

  2. Configuring Enterprise Tester use "out of proc" session storage.

Increasing the Idle Timeout of the Application Pool

The idle timeout determines the number of minutes the application pool (and thus the application Enterprise Tester) will be held in memory, with any requests being made, before the application is automatically unloaded from memory.

On most default IIS installations, this value will default to 20 minutes.

In addition there is also another setting, which controls the maximum number of minutes the application pool can be active before it is recycled - this setting is the "Regular Time Interval (minutes)" Recycle trigger. This feature is intended to recycle the process on a regular basis (normally every 1-2 days) to avoid the effects of memory leaks etc. that may exist in software. 

Altering the values in IIS6.

 

Altering the Values in IIS7


 

Configuring Enterprise Tester to Use "out-of-proc" Session State Storage

Included with the .NET SDK is a Windows® NT service: ASPState. This Windows service is what ASP.NET uses for out-of-process session state management. To use this state manager, you first need to start the service. To start the service, open a command prompt and type: 

net start aspstate

What you'll see is: 

At this point, the Windows NT Service ASPState has started and is available to ASP.NET. Next, we need to configure ASP.NET to take advantage of this service. To do this we need to update the web.config:

Locate the <system.web> section, then add this immediately beneath it: 

<sessionState mode="StateServer"
    stateConnectionString="tcpip=127.0.0.1:42424"
    cookieless="false"
    timeout="20"/>

Then save the changes. 

At this point the application should start using the state server for storing session information - this is a resilient store that will survive when the application pool is recycled. 

See this msdn article for more details on in-proc and out-of-proc session state in ASP.Net.