Binding.ReceiveTimeout Binding.ReceiveTimeout Binding.ReceiveTimeout Binding.ReceiveTimeout Property

Definición

Obtiene o establece el intervalo de tiempo que una conexión puede permanecer inactiva, durante el cual no se recibe ningún mensaje de la aplicación, antes de interrumpir la conexión.Gets or sets the interval of time that a connection can remain inactive, during which no application messages are received, before it is dropped.

public:
 property TimeSpan ReceiveTimeout { TimeSpan get(); void set(TimeSpan value); };
public TimeSpan ReceiveTimeout { get; set; }
member this.ReceiveTimeout : TimeSpan with get, set
Public Property ReceiveTimeout As TimeSpan

Valor de propiedad

TimeSpan que especifica el tiempo con el que cuenta la aplicación para recibir un mensaje antes de que se agote el tiempo de espera. El valor predeterminado es 10 minutos.The TimeSpan that specifies how long the application has to receive a message before timing out. The default value is 10 minutes.

Excepciones

El valor es menor que cero o demasiado grande.The value is less than zero or too large.

Comentarios

Cuando se utilice una sesión fiable, hay dos temporizadores de inactividad diferentes que se deben tener en cuenta para mantener la conexión activa.When using a reliable session, there are two different inactivity timers that must be satisfied to keep the connection alive. Si cualquiera de estos temporizadores de inactividad supera los valores establecidos, a continuación, se interrumpe la conexión.If either of these inactivity timers goes off, then the connection is dropped.

  • El primer temporizador de inactividad está en la sesión fiable y se denomina InactivityTimeout.The first inactivity timer is on the reliable session and is called the InactivityTimeout. Este temporizador de inactividad se desencadena si no se recibe ningún mensaje, ni de la aplicación ni de la infraestructura, dentro del período de tiempo de espera.This inactivity timer fires if no messages, either application or infrastructure, are received within the timeout period. Un mensaje de la infraestructura es un mensaje que se genera para cumplir uno de los protocolos de la pila de canales, como por ejemplo confirmar o mantener la actividad, en lugar de contener los datos de la aplicación.An infrastructure message is a message that is generated for the purpose of one of the protocols in the channel stack, such as a keep alive or an acknowledgment, rather than containing application data.

  • El segundo temporizador de inactividad está en el servicio y utiliza la configuración ReceiveTimeout del enlace.The second inactivity timer is on the service and uses the ReceiveTimeout setting of the binding. Este temporizador de inactividad se desencadena si no se recibe ningún mensaje de la aplicación dentro del período de tiempo de espera.This inactivity timer fires if no application messages are received within the timeout period. Por ejemplo, esto especifica el tiempo máximo que un cliente puede tardar en enviar al menos un mensaje al servidor antes de que el servidor cierre el canal utilizado por una sesión.This specifies, for example, the maximum time a client may take to send at least one message to the server before the server will close the channel used by a session. Este comportamiento garantiza que los clientes no pueden acaparar los recursos del servidor durante períodos largos arbitrarios.This behavior ensures that clients cannot hold on to server resources for arbitrary long periods.

Ya que la conexión se interrumpe si se desencadena cualquiera de los temporizadores de inactividad, aumentar InactivityTimeout una vez que ya supera ReceiveTimeout no tiene ningún efecto.Since the connection is dropped if either inactivity timer fires, increasing InactivityTimeout once it is greater than ReceiveTimeout has no effect. El valor predeterminado para ambos tiempos de espera es de 10 minutos, de modo que siempre tiene que aumentar ambos tiempos para establecer diferencias cuando utilice una sesión fiable.The default for both of these timeouts is 10 minutes, so you always have to increase both of them to make a difference when using a reliable session.

Si el flujo de la transacción está habilitado en el enlace o en el canal, la operación puede tardar más en ejecutarse que el tiempo de espera especificado.If transaction flow is enabled on the binding or the channel, the operation may take longer to execute than the specified timeout. En esas circunstancias, se produce un error en la operación porque caduca el tiempo de espera y la transacción se anula apropiadamente.In these circumstances the operation fails due to the expired timeout and the transaction aborts appropriately.

Cuando se utiliza la seguridad con sesiones, el ReceiveTimeout valor establecido en el enlace también se usa como el tiempo de espera de sesión.When security is used with sessions, the ReceiveTimeout value set on the binding is also used as the session timeout.

Se aplica a