ServiceThrottlingBehavior Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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. |