title: AspNetCompatibilityRequirements causes WCF web service to block
body: <p>Hello I have a simple wcf service like this, with a test method which simply sleeps for 20 seconds and returns a value. I wrote a test page which uses jquery to call it 10 times in a row, and it appears to execute concurrently, with the client waiting 20 seconds and then getting results back from all of the services at about the same time.    </p>
  
  <pre><code> [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
      [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall,ConcurrencyMode=ConcurrencyMode.Multiple,UseSynchronizationContext=false)]
  public class AjaxTestWCFService : IAjaxTestWCFService
  </code></pre>
  
  <p>However if I set</p>
  
  <pre><code>aspNetCompatibilityEnabled="true"
  </code></pre>
  
  <p>in web.config then no matter what I do, with <code>concurrencymode, usesynchronizationcontext</code> or instance context mode, or even <code>serviceThrottling</code> config, it appears to execute each web service call sequentially, with it taking 2 minutes for all 10 requests to return!!</p>
  
  <p>Now I realize that this may be because of session, but at least in ASMX services I was able to set enablesession to false. And in fact my web service method is not using session at all. So you may wonder, why use <code>aspNetCompatibilityEnabled</code> at all. Because I want to use ASP.net impersonation and forms authentication.</p>
  
  <p>I even set</p>
  
  <pre><code>[ServiceContract(SessionMode=SessionMode.NotAllowed)]
  </code></pre>
  
  <p>So my question is, is this by design and how can I enable concurrent web service requests with ASP.net compatibility enabled?</p>