ReliableSession.InactivityTimeout Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta un intervallo di tempo in cui un servizio può rimanere inattivo prima della chiusura.
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
Valore della proprietà
Oggetto TimeSpan che specifica l'intervallo di tempo in cui un servizio rimane inattivo prima della chiusura. Il valore predefinito è 10 minuti.
Eccezioni
Il valore impostato è minore o uguale a zero.
Esempio
// 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)
Commenti
La proprietà ottiene e imposta il valore della InactivityTimeout proprietà .
L'attività in un canale viene definita come ricezione di un messaggio dell'applicazione o dell'infrastruttura. La proprietà di timeout di inattività controlla la quantità massima di tempo per mantenere attiva una sessione inattiva. Se supera l'intervallo InactivityTimeout di tempo specificato senza alcuna attività, la sessione viene interrotta dall'infrastruttura e dagli errori del canale. La sessione affidabile viene detronata unilateralmente.
Se l'applicazione di invio non ha messaggi da inviare, la sessione affidabile non viene in genere difettosa a causa dell'inattività; Un meccanismo keep-alive mantiene invece attiva la sessione per un periodo illimitato. Si noti che il dispatcher potrebbe interrompere in modo indipendente la sessione affidabile se non vengono inviati o ricevuti messaggi dell'applicazione. Pertanto, il timeout di inattività scade in genere se le condizioni di rete sono tali che non vengono ricevuti messaggi di alcun tipo o se si verifica un errore nel mittente.
L'impostazione di questo timeout impedisce al server di trattenere una sessione di sicurezza se il client non lo chiude. Se la sessione di sicurezza non ha ricevuto un messaggio per l'intervallo di tempo di inattività, viene chiuso dal server. In questo modo si riduce un potenziale attacco Denial of Service.
Quando si usa una sessione affidabile, esistono due timer di inattività diversi che devono essere soddisfatti per mantenere attiva la connessione. Se uno di questi timer di inattività viene disattivato, la connessione viene eliminata.
Il primo timer di inattività si trova nella sessione affidabile e viene chiamato InactivityTimeout. Questo timer di inattività viene attivato se non vengono ricevuti messaggi, applicazione o infrastruttura, entro il periodo di timeout. Un messaggio di infrastruttura è un messaggio generato allo scopo di uno dei protocolli nello stack di canali, ad esempio un keep alive o un riconoscimento, anziché contenere i dati dell'applicazione.
Il secondo timer di inattività si trova nel servizio e usa l'impostazione ReceiveTimeout dell'associazione. Questo timer di inattività viene attivato se non vengono ricevuti messaggi dell'applicazione entro il periodo di timeout.
Poiché la connessione viene eliminata se viene attivato uno dei timer di inattività, aumentando InactivityTimeout una volta maggiore di ReceiveTimeout non ha alcun effetto. L'impostazione predefinita per entrambi questi timeout è di 10 minuti, quindi è sempre necessario aumentare entrambi per fare la differenza quando si usa una sessione affidabile.