

So, ASP.NET will not execute more than the following number of requests at the same time:

Httpexception 0x80004005 request timed out free#
If there are not sufficient threads available, the request is queued until sufficient threads are free to make the request. MinFreeThreads and minLocalRequestFreeThreadsĪSP.NET also contains the following configuration settings that determine how many worker threads and completion port threads must be available to start a remote request or a local request: For example, if you have two processors, the maximum number of worker threads is 2 * maxWorkerThreads. The maxWorkerThreads parameter and the maxIoThreads parameter are implicitly multiplied by the number of CPUs. MaxWorkerThreads and maxIoThreadsĪSP.NET uses the following two configuration settings to limit the maximum number of worker threads and completion threads that are used:

However, this limit has proved to work well for most applications. The recommendation to limit the number of ASP.NET requests to 12 per CPU is a little arbitrary. Base your selection on the number of IP addresses and AppDomains that are used.
Httpexception 0x80004005 request timed out code#
So, you can exhaust the managed ThreadPool when multiple web service calls occur at the same time.įor example, suppose that the ThreadPool is limited to 10 worker threads and that all 10 worker threads are currently executing code that is waiting for a callback to execute. However, if the request is redirected or requires authentication, the call may use as many as two worker threads and two completion port threads. Typically, a call to a web service uses one worker thread to execute the code that sends the request and one completion port thread to receive the callback from the web service. This problem might occur because ASP.NET limits the number of worker threads and completion port threads that a call can use to execute requests. This article also applies to applications that make HttpWebRequest requests directly.
