title: MaxConcurrentRequestsPerCPU and MaxConcurrentThreadsPerCPU not working as documented?
body: <p>In an IIS7.5 environment I have configured aspnet.config to set MaxConcurrentRequestsPerCPU to 1.</p>
  
  <p>I am executing a web service on this instance of IIS for which I have configured to expose the MaxConcurrentRequestsPerCPU and MaxConcurrentThreadsPerCPU in response to a WebMethod in an ASMX web service which allows me to confirm via the web service that the .NET framework is correctly reading these values in and that they should hence be correctly utilised by IIS by simply having the WebMethod return the values from the HostingEnvironment object.</p>
  
  <p>I also have a WebMethod that simply sleeps the thread for 5 seconds simply called TestMethod.</p>
  
  <p>In theory I believe this setup should ensure that subsequent calls to TestMethod occur in a serial manner due to the fact that only 1 request per CPU is allowed, or, if per CPU actually allows for per core on a quad core system, a maximum of 4 requests are processed in parallel depending on whether it genuinely is per CPU, or whether it's per core.</p>
  
  <p>However, neither of these seem to be the case. For 20 simultaneous requests to this method I would expect to either see a completion time of around 100s (20 requests x 5seconds) or 25s ((20 requests / 4 cores) x 5seconds). Instead I consistently end up with completion times of 10 seconds which implies that 10 requests are being handled in parallel despite the concurrent request limit being set to 1. This remains true when I also set concurrent threads per CPU to 1 also.</p>
  
  <p>Can anyone explain why these settings seem to get ignored, or seem to not work as documented in this case?</p>