Recommending the post “WCF Request Throttling and Server Scalability“.
It contains important information regarding WCF’s asynchronous processing when hosting on IIS. For example, I was unaware that
So in the release of .Net 3.0 and 3.5, WCF implemented synchronous versions of HTTP module and handler instead of asynchronous ones
meaning that even with asynchronous service implementation (asyncpattern=true), a thread will be blocked for the duration of the request’s processing. This thread will be the ASP.NET’s thread from the CLR ThreadPool.
Since I do most of my tests and experiences using self-hosting, I didn’t have noticed this.