Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Propiedad Binding.ReceiveTimeout

 

Publicado: noviembre de 2016

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.

Espacio de nombres:   System.ServiceModel.Channels
Ensamblado:  System.ServiceModel (en System.ServiceModel.dll)

public TimeSpan ReceiveTimeout { get; set; }

Valor de propiedad

Type: System.TimeSpan

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.

Exception Condition
ArgumentOutOfRangeException

El valor es menor que cero o demasiado grande.

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 utiliza la seguridad con sesiones, el ReceiveTimeout también se utiliza el valor establecido en el enlace como el tiempo de espera de sesión.

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 3.0
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Volver al principio
Mostrar: