Compartir vía


Binding.ReceiveTimeout Propiedad

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.

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 cuánto tiempo tiene la aplicación para recibir un mensaje antes de que se agote el tiempo de espera. El valor predeterminado es 10 minutos.

Excepciones

El valor es menor que cero o demasiado grande.

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. Si cualquiera de estos temporizadores de inactividad supera los valores establecidos, a continuación, se interrumpe la conexión.

  • El primer temporizador de inactividad está en la sesión fiable y se denomina 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. 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.

  • El segundo temporizador de inactividad está en el servicio y utiliza la configuración ReceiveTimeout del enlace. 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. 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. Este comportamiento garantiza que los clientes no pueden acaparar los recursos del servidor durante períodos largos arbitrarios.

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

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. En esas circunstancias, se produce un error en la operación porque caduca el tiempo de espera y la transacción se anula apropiadamente.

Cuando se usa la seguridad con sesiones, el ReceiveTimeout valor establecido en el enlace también se usa como tiempo de espera de la sesión.

Se aplica a