Using more threads to process ASP.NET web service requests?
Posted on 2010-09-01
Is there a setting somewhere in IIS 6/.NET 2.0/Windows Server 2003 to allocate threads more aggressively to handling pending ASP.NET web service requests? When we have more than a couple of long-running web service requests arrive at approximately the same time, some of those requests end up queued behind others even though there are free threads remaining in the ASP.NET thread pool.
In our server's configuration files, we have tried changing the processModel attributes maxWorkerThreads, maxIoThreads, and minWorkerThreads, but have been unable to substantially affect the observed "queuing" behavior. We also played around with the httpRuntime attributes minFreeThreads and minLocalRequestFreeThreads, also without success. We also substantially increased maxConnection in the connectionManagement section in case that was involved, but again it did not help.
The web service request threads are not bound by CPU, I/O or any other measure that we are aware of. Mostly they are waiting on responses from remote systems. Essentially the server is sitting there nearly idle, but still refuses to process additional web service requests until the first few it received have finished. It seems like there should be a way to tweak this behavior when there are both unused threads and plenty of idle CPU available.