다음을 통해 공유


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를 사용하여 MaxConcurrentSessions, MaxConcurrentCallsMaxConcurrentInstances 속성을 1로 설정하는 예를 보여 줍니다. 실제 경험을 통해 특정 애플리케이션에 대한 최적의 설정을 결정하도록 합니다.

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

서비스 및 호스트가 서비스 동작을 지원할 수 있는지를 확인합니다.

적용 대상