ReliableSession.InactivityTimeout Propiedad
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í.
Obtiene o establece un intervalo de tiempo durante el que un servicio puede permanecer inactivo antes de cerrarse.
public:
property TimeSpan InactivityTimeout { TimeSpan get(); void set(TimeSpan value); };
public TimeSpan InactivityTimeout { get; set; }
member this.InactivityTimeout : TimeSpan with get, set
Public Property InactivityTimeout As TimeSpan
Valor de propiedad
TimeSpan que especifica el intervalo de tiempo durante el que un servicio permanece inactivo antes de cerrarse. El valor predeterminado es 10 minutos.
Excepciones
El valor establecido es menor o igual que cero.
Ejemplos
// Create a new reliable session object
ReliableSessionBindingElement bindingElement = new ReliableSessionBindingElement();
ReliableSession reliableSession = new ReliableSession(bindingElement);
// Now you can access property values
Console.WriteLine("Ordered: {0}", reliableSession.Ordered);
Console.WriteLine("InactivityTimeout: {0}", reliableSession.InactivityTimeout);
' Create a new reliable session object
Dim bindingElement As ReliableSessionBindingElement = New ReliableSessionBindingElement()
Dim reliableSession As ReliableSession = New ReliableSession(bindingElement)
' Now you can access property values
Console.WriteLine("Ordered: {0}", reliableSession.Ordered)
Console.WriteLine("InactivityTimeout: {0}", reliableSession.InactivityTimeout)
Comentarios
La propiedad obtiene y establece el valor de la propiedad InactivityTimeout.
La actividad en un canal se define como la recepción de una aplicación o mensaje de infraestructura. La propiedad de tiempo de espera de inactividad controla el tiempo máximo para mantener viva una sesión inactiva. Si transcurre más del intervalo de tiempo especificado InactivityTimeout sin actividad, los errores de infraestructura y canal anulan la sesión. La sesión de confianza se cierra unilateralmente.
Si la aplicación emisora no tiene ningún mensaje para enviar, la sesión de confianza normalmente no registra un error debido a inactividad; en su lugar un mecanismo Keep-Alive mantiene la sesión indefinidamente activa. Observe que el distribuidor podría anular independientemente la sesión de confianza si no se envía ni se recibe ningún mensaje de la aplicación. Por consiguiente, el tiempo de espera de inactividad expira normalmente si las condiciones de la red son tales que no se recibe ningún mensaje de ningún tipo o si hay un error en el remitente.
Establecer este tiempo de espera evita que el servidor mantenga una sesión de seguridad si el cliente no la cierra. Si la sesión de seguridad no ha recibido un mensaje durante el intervalo de tiempo de inactividad, el servidor se cierra. Esto mitiga un posible ataque por denegación de servicio.
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.
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.