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,举例来说,它可将 MaxConcurrentSessionsMaxConcurrentCallsMaxConcurrentInstances 属性设置为 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)

验证服务和主机能否支持服务行为。

适用于