ServiceThrottlingBehavior Класс

Определение

Настраивает параметры производительности времени выполнения, которые позволяют настроить производительность службы.

public ref class ServiceThrottlingBehavior : System::ServiceModel::Description::IServiceBehavior
public class ServiceThrottlingBehavior : System.ServiceModel.Description.IServiceBehavior
type ServiceThrottlingBehavior = class
    interface IServiceBehavior
Public Class ServiceThrottlingBehavior
Implements IServiceBehavior
Наследование
ServiceThrottlingBehavior
Реализации

Примеры

В следующем примере кода показано использование объекта 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>

Комментарии

Используйте класс ServiceThrottlingBehavior для управления различными параметрами производительности, с помощью которых предупреждается нехватка памяти для приложения.

Свойство MaxConcurrentCalls ограничивает количество сообщений, обрабатываемых в текущий момент в ServiceHost.

Свойство MaxConcurrentInstances ограничивает число объектов InstanceContext, одновременно выполняющихся в ServiceHost.

Свойство MaxConcurrentSessions ограничивает количество сеансов, которые может принять объект ServiceHost.

Поскольку балансировка нагрузки во время выполнения требует опыта запуска приложения, использование объекта ServiceThrottlingBehavior с помощью файла конфигурации приложения — это наиболее распространенный метод изменения выполнения для достижения максимальной производительности службы.

Примечание

Каждый раз при достижении значений этих свойств происходит запись трассировки. Первая трассировка записывается как предупреждение.

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

Конструкторы

ServiceThrottlingBehavior()

Инициализирует новый экземпляр класса ServiceThrottlingBehavior.

Свойства

MaxConcurrentCalls

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

MaxConcurrentInstances

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

MaxConcurrentSessions

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

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection)

Настраивает привязки для поддержки поведения службы.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Настраивает службу для поддержки поведения службы.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Проверяет, что служба и узел могут поддерживать поведение службы.

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