Binding.ReceiveTimeout Proprietà

Definizione

Ottiene o imposta l'intervallo di tempo durante il quale una connessione rimane inattiva, senza ricevere messaggi dell'applicazione, prima di essere rilasciata.

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 0 o troppo grande.

Commenti

Quando si utilizza una sessione affidabile, è necessario rispettare due diversi timer di inattività per mantenere attiva la connessione. Se uno dei timer di inattività viene disattivato, la connessione viene eliminata.

  • Il primo timer di inattività si trova nella sessione affidabile ed è denominato InactivityTimeout. Questo timer di inattività viene attivato se entro il periodo di timeout specificato non viene ricevuto alcun messaggio, né dell'applicazione né dell'infrastruttura. Per messaggio dell'infrastruttura si intende un messaggio che non contiene dati dell'applicazione e che viene generato per uno dei protocolli nello stack dei canali, ad esempio keep-alive o acknowledgment.

  • Il secondo timer di inattività si trova nel servizio e utilizza l'impostazione ReceiveTimeout dell'associazione. Questo timer di inattività viene attivato se entro il periodo di timeout specificato non viene ricevuto alcun messaggio dell'applicazione. Specifica, ad esempio, il tempo massimo che un client può impiegare per l'invio di almeno un messaggio al server prima che il canale utilizzato da una sessione venga chiuso dal server stesso. Questo comportamento ha lo scopo di assicurare che i client non mantengano occupate le risorse del server per lunghi periodi arbitrari.

Poiché la connessione viene eliminata all'attivazione di uno dei timer di inattività, l'aumento di InactivityTimeout una volta raggiunto un valore maggiore di ReceiveTimeout non produrrà alcun effetto. Poiché l'impostazione predefinita per entrambi i timeout è 10 minuti, è sempre necessario aumentarli entrambi per creare una differenza quando si utilizza una sessione affidabile.

Se sull'associazione o sul canale è stato abilitato il flusso delle transazioni, l'esecuzione dell'operazione può richiedere più tempo rispetto al timeout specificato. In queste circostanze l'operazione non riesce a causa del timeout scaduto e la transazione si interrompe in modo corretto.

Quando la sicurezza viene usata con le sessioni, il ReceiveTimeout valore impostato sull'associazione viene usato anche come timeout della sessione.

Si applica a