WCF InstanceContextMode and ConcurrencyMode
• Jason M Penniman
I recently ran into a concurrency issue with WCF on a customer’s system. I’ll get into the details later (though not too much detail… NDA ;) ), but it involved some testing of the various combinations of InstanceContextMode and ConcurrencyMode settings for a WCF service. The table below is an attempt to clarify the results…
|Multiple||Same as with ConcurrencyMode.Single|
It’s also worth noting that if you are using ServiceHost in an executable assembly, that the Main() method not be marked with the single threaded appartment attribute [System.STAThreadAttribute()]. This causes the application to be single threaded, and the additional threads will not be created regardless of the ConcurrencyMode.Multiple setting. Rather, it should be decorated with the multi-threaded appartment attribute [System.MTAThreadAttribute()].