This documentation is archived and is not being maintained.

ServiceThrottlingBehavior.MaxConcurrentSessions Property

Gets or sets a value that specifies the maximum number of sessions a ServiceHost object can accept at one time.

Namespace:  System.ServiceModel.Description
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

public int MaxConcurrentSessions { get; set; }

Property Value

Type: System.Int32
The maximum number of sessions a service host accepts. The default is 10.

The MaxConcurrentSessions property specifies the maximum number of sessions a ServiceHost object can accept. It is important to understand that sessions in this case does not mean only channels that support reliable sessions (for example, System.ServiceModel.NetNamedPipeBinding supports sessions but does not include reliable sessions).

Each listener object can have one pending channel session that does not count against the value of MaxConcurrentSessions until WCF accepts the channel session and begins processing messages on it. This property is most useful in scenarios that make use of sessions.

When this property is set to a value less than the number of client threads, the requests from multiple clients may get queued in the same socket connection. The requests from the client that has not created a session with the service will be blocked till the service closes its session with the other clients if number of open sessions on the service has reached MaxConcurrentSessions. The client requests that are not served get timed out and the service closes the session abruptly.

To avoid this situation, run the client threads from different app domains so that the request messages go into different socket connections.

You can also set the values of this attribute by using the <serviceThrottling> element in an application configuration file.

The following code example shows the use of ServiceThrottlingBehavior from an application configuration file that sets the MaxConcurrentSessions, MaxConcurrentCalls, and MaxConcurrentInstances properties to 1 as an example. Real-world experience determines what the optimal settings are for any particular application.

    <!-- use appSetting to configure base address provided by host -->
    <add key="baseAddress" value="http://localhost:8080/ServiceMetadata" />
        behaviorConfiguration="Throttled" >
            <add baseAddress="http://localhost:8080/SampleService"/>
        <behavior  name="Throttled">

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0