ServiceThrottle.MaxConcurrentInstances Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или устанавливает максимальное число объектов службы, которые могут выполняться одновременно.
public:
property int MaxConcurrentInstances { int get(); void set(int value); };
public int MaxConcurrentInstances { get; set; }
member this.MaxConcurrentInstances : int with get, set
Public Property MaxConcurrentInstances As Integer
Значение свойства
Максимальное число объектов InstanceContext, существующих в службе одновременно. Значение по умолчанию: максимальное количество параллельных вызовов + максимальное количество одновременных сеансов.
Примеры
В следующем примере кода демонстрируется типовое использование объекта ServiceThrottle путем указания поведения ServiceThrottlingBehavior в файле конфигурации приложения. В данном случае указанные значения обеспечивают обработку не более одного сообщения одновременно от одного подключения к одному объекту InstanceContext. Реальное использование определяется фактическими условиями.
<configuration>
<appSettings>
<!-- use appSetting to configure base address provided by host -->
<add key="baseAddress" value="http://localhost:8080/ServiceMetadata" />
</appSettings>
<system.serviceModel>
<services>
<service
name="Microsoft.WCF.Documentation.SampleService"
behaviorConfiguration="Throttled" >
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/SampleService"/>
</baseAddresses>
</host>
<endpoint
address=""
binding="wsHttpBinding"
contract="Microsoft.WCF.Documentation.ISampleService"
/>
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"
/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="Throttled">
<serviceThrottling
maxConcurrentCalls="1"
maxConcurrentSessions="1"
maxConcurrentInstances="1"
/>
<serviceMetadata
httpGetEnabled="true"
httpGetUrl=""
/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Комментарии
Свойство MaxConcurrentInstances указывает максимальное количество объектов InstanceContext в службе. Важно учитывать отношения между свойством MaxConcurrentInstances и свойством InstanceContextMode. Если InstanceContextMode результирующее PerSession значение является общим числом сеансов. Если свойство InstanceContextMode имеет значение PerCall, то результирующее значение равно общему количеству одновременных вызовов. Если сообщение приходит, когда уже присутствует максимальное количество объектов InstanceContext, сообщение удерживается до закрытия одного объекта InstanceContext.
Примечание
Каждый раз при превышении значения этого свойства происходит запись трассировки. Первая трассировка записывается как предупреждение.