Binding.ReceiveTimeout 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 l'intervallo di tempo in cui una connessione può rimanere inattiva, durante la quale non vengono ricevuti messaggi dell'applicazione, prima che venga eliminata.
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
Valore della proprietà
Oggetto TimeSpan che specifica per quanto tempo l'applicazione deve ricevere un messaggio prima del timeout. Il valore predefinito è 10 minuti.
Eccezioni
Il valore è minore di zero o troppo grande.
Commenti
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. Ciò specifica, ad esempio, il tempo massimo impiegato da un client per inviare almeno un messaggio al server prima che il server chiuda il canale utilizzato da una sessione. Questo comportamento garantisce che i client non possano mantenere le risorse del server per lunghi periodi arbitrari.
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.
Se il flusso di transazione è abilitato nell'associazione o nel canale, l'operazione potrebbe richiedere più tempo rispetto al timeout specificato. In queste circostanze l'operazione non riesce a causa del timeout scaduto e la transazione viene interrotta in modo appropriato.
Quando la sicurezza viene usata con le sessioni, il ReceiveTimeout valore impostato sull'associazione viene usato anche come timeout della sessione.