title: How to increase the number of parallel connections for a WCF service
body: <p>Our web application has performance problems which I am investigating. It uses a 4-tier architecture with a MVC4 webapp, WCF data service and SQLServer as DB.
  The data service does not really scale the requests although there are enough resources available. It seems that it only answers 10-12 requests in parallel and queues all others. I would like to see that it answers >100 requests simultaneously.</p>
  
  <ol>
  <li>I tried to play around with all configuration values I found for
  this topic for WCF: system.net -> connectionManagement -> add
  maxconnection=100 serviceBehavior -> serviceThrottling ->
  maxConcurrentCalls/Instances/Sessions=100. No success.</li>
  <li>I tried to use httpBinding as well as netTcpBinding where I found
  the parameter maxConnections and set it to 100. No success.</li>
  <li>Is it WCF? I implemented a simple sleep.aspx webform that has 1s to 
  return (using Thread.Sleep()). Same Result, only 10-12 Requests are 
  answered within 1s, further requests are queued.</li>
  <li>Is it .Net? I installed ActiveState Perl on the testmachine and
  wrote a little Perl script which does the same. Same Result, 10-12
  Requests are answered directly, others are queued.</li>
  <li>Is it Windows? I installed the Perl script on a Linux machine with
  Apache. The test client runs under Windows. In this constellation I
  get 100 responses within 1s when I configure Apache to have as many
  server processes.</li>
  <li>IIS is also able to run with multiple processes instead of multiple
  threads (Web garden) as well. Ah, in this case, IIS also answers 100
  requests in parallel.</li>
  </ol>
  
  <p>All this brings me to the conclusion that a single Windows process might not be able to handle more than 10-12 TCP connection in parallel.</p>
  
  <p>Is this the truth? Can this be configured somewhere?</p>
  
  <p>Due to the design of the data service it should not run with multiple processes because it uses an object cache which needs to be synchronized with all other instances.</p>
  
  <p>Google seems not to know much about this issue.</p>
  
  <p>Environment: Windows Server 2008 R2/Windows Server 2012 R2, MVC4, WCF, .Net 4.5.1</p>
  
  <p>Thomy</p>