Before blaming the framework technology you built on, tell us more about your specific implementation. I personally found that each facet of WCF itself is scalable beyond belief if used properly. Most often you will find the specific implementation / configuration that you put together to blame.
So, here are some questions about your implementation that hopefully help the community help you better:
- What kind of requests do you send?
- What starter kit features do you use?
- How are your bindings configured?
- Do you transfer any binary data to or from them?
- Do you use any security? (SSL, user / pass, etc.).
- Do you perform any lengthy tasks for any queries?
Update 1
So everything looks good in terms of bindings and from what you explain, it looks like you have a pretty "vanilla" WCF service here. It doesn't seem like you are using any WCF 3.5 REST Starter Kit framework at all , but I'm not sure if you are leaving any details or if you just made a mistake saying you were using it.
One thing I noticed that you did not do this, however, any explicit <serviceThrottling> values ββwere set in your service settings. By default, in .NET 3.5, the maximum number of simultaneous calls is 16 . Thus, depending on the duration of your calls and the saturation at any point from your customers, you may be delayed there. If you look through this section of MSDN called Optimizing the Performance of the WCF Web Service , you will see some recommendations that recommend actually maxConcurrentCalls to 16 on the kernel. This is one place where .NET 4 differs in that they actually do 16 * automatically the number of cores automatically, unless you specify an explicit value of your own. Naturally, the only way to find a nice place for your application is to load test and play with a number.
All that said, there is not much more, I see that I am mistaken in the information that you provided. If you tell us more about the internal functions of your web service, we may be able to make some recommendations on how to achieve better performance. As far as we know, at this moment your bottleneck may be in some kind of database with which you interact.
So, to answer the title of this question: at the moment, I donβt think that something is holding you back because you are using 3.5. Of course there are some performance improvements in 4.0, but you are not talking about mega-scales here or something else, and as I said, you are not making any complicated WCF settings or anything as per your description.