I recently setup a WCF service using Visual Studio 2010. The service is hosted in IIS on a Windows 2008 server. My contract exposes one method. The implementation of that methods performs two quick SQL SELECT queries and based on the results then performs an SQL INSERT query. In other words the service is quick to respond. Short term I am looking at 1 request per second. Long term it might be 3 requests per second.
I did some reading on throttling and came across settings like MaxConcurrentCalls (default 16), MaxconcurrentSessions (default 10) and MaxConcurrentInstance. Apparently the default settings were considered conservative and were changed in WCF 4.0 to MaxConcurrentCalls (default 100 * processor count), MaxconcurrentSessions (default 16 * processor count).
- How can I find out what version of WCF I have installed so I know what my default settings are?
- Given the information I have provided, what settings would be appropriate for my scenario?
In code you can use System.Environment.Version to determine the current executing version of the CLR.
Which version executes depends on the available, installed versions of the CLR and the current executing assembly which might request a specific version.
Given the information it is still hard to tell because a lot depends on the actual hardware, software, load etc. the best thing you can do is build it and then stress-test the system to find out the sweet spot.