Поделиться через


ServiceThrottlingBehavior.MaxConcurrentInstances Свойство

Определение

Возвращает или устанавливает значение, которое определяет максимальное количество одновременно выполняющихся объектов InstanceContext в службе.

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, существующих в службе одновременно. Значение по умолчанию — это сумма значения MaxConcurrentSessions и значение MaxConcurrentCalls.

Примеры

В следующем примере кода показано использование объекта ServiceThrottlingBehavior из файла конфигурации приложения, который, в качестве примера, устанавливает значение, равное 1 для свойств MaxConcurrentSessions, MaxConcurrentCalls, MaxConcurrentInstances. Оптимальные параметры для каждого конкретного приложения определяются фактическими условиями.

<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.

Вы также можете задать значения этого атрибута с помощью <элемента serviceThrottling> в файле конфигурации приложения.

Применяется к