Compartir vía


ServiceThrottlingBehavior Clase

Definición

Configura los valores de rendimiento en tiempo de ejecución que le permiten ajustar el rendimiento del servicio.

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
Herencia
ServiceThrottlingBehavior
Implementaciones

Ejemplos

El siguiente ejemplo de código muestra el uso de ServiceThrottlingBehavior desde un archivo de configuración de la aplicación que establece el valor 1 en MaxConcurrentSessions, MaxConcurrentCalls y las propiedades MaxConcurrentInstances, como ejemplo. La experiencia real determina cuáles son los valores óptimos para cualquier aplicación determinada.

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

Comentarios

Utilice la clase ServiceThrottlingBehavior para controlar varios valores de rendimiento que ayudan a evitar que su aplicación se ejecute con memoria insuficiente.

La propiedad MaxConcurrentCalls limita el número de mensajes que actualmente se procesan a través de ServiceHost.

La propiedad MaxConcurrentInstances limita el número de los objetos InstanceContext que se ejecutan a la vez a través de ServiceHost.

La propiedad MaxConcurrentSessions limita el número máximo de sesiones que un objeto ServiceHost puede aceptar.

Dado que el equilibrio de carga en tiempo de ejecución requiere experiencia en la ejecución de la aplicación, utilizar ServiceThrottlingBehavior a través de un archivo de configuración de la aplicación es el método más común para la modificación de la ejecución para maximizar el rendimiento del servicio.

Nota

Se escribe un seguimiento cada vez que se alcanza el valor de estas propiedades. El primer seguimiento se escribe como una advertencia.

También puede establecer los valores de este atributo mediante el <elemento serviceThrottling> en un archivo de configuración de la aplicación.

Constructores

ServiceThrottlingBehavior()

Inicializa una nueva instancia de la clase ServiceThrottlingBehavior.

Propiedades

MaxConcurrentCalls

Obtiene o establece el valor que especifica el número máximo de mensajes que se procesan activamente en ServiceHost.

MaxConcurrentInstances

Obtiene o establece un valor que especifica el número máximo de sesiones que los objetos InstanceContext del servicio puede ejecutar en un momento dado.

MaxConcurrentSessions

Obtiene o establece un valor que especifica el número máximo de sesiones que un objeto ServiceHost puede aceptar en un momento dado.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

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

Configura los enlaces que admitirán el comportamiento del servicio.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Configura el servicio que admitirá el comportamiento del servicio.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Valida que el servicio y el host puedan admitir el comportamiento del servicio.

Se aplica a