Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<ol> <li><p>If you really have few operations, single service can be used. Generally services are logical collection of related operations but the number of operations should be limited. Usually if your service have more than 20 operations you should think about refactoring.</p></li> <li><p>Do you plan to use REST service? I guess you do because of your first interface example. In such case you need <code>WebHttpBinding</code> (or similar custom binding) with default <code>InstanceContextMode</code> (<code>PerCall</code>) and <code>ConcurrencyMode</code> (<code>Single</code>) values. Only other meaningful combination for REST service is <code>InstanceContextMode.Single</code> and <code>ConcurrencyMode.Multiple</code> but it will create your service as singleton which can have impact on your service implementation. My rule of thumb: <em>Don't use singleton service unless you really need it.</em></p></li> <li><p>Throttling configuration is dependend on your service implementation and on performance of your servers. What does thousands concurrent users really mean for you? Processing thousands of requests concurrently requires good server cluster with load balancer or hosting in Azure (cloud). All is also dependend on the speed of processing (operation implementation) and size of messages. The correct setting for <code>MaxConcurrentInstances</code> and <code>MaxConcurrentCalls</code> (should be same for <code>PerCall</code> instancing) should be revealed by performance testing. <a href="http://blogs.msdn.com/b/wenlong/archive/2009/07/26/wcf-4-higher-default-throttling-settings-for-wcf-services.aspx" rel="nofollow">Default values</a> for service throttling have changed in WCF 4.</p></li> </ol>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload