Domanda

Come funzionano i timeout in WCF? So ad esempio che è possibile configurare sendTimeout e receTimeout per un'associazione client. Ma come funzionano?

MSDN descrive sendTimeout come:

  

Un valore TimeSpan che specifica l'intervallo di tempo fornito per a   invia l'operazione per completare. Questo valore dovrebbe essere maggiore o uguale   a zero. L'impostazione predefinita è 00:01:00.

Cosa sono le operazioni di invio / ricezione?

È stato utile?

Soluzione

Lato client:

  • SendTimeout viene utilizzato per inizializzare OperationTimeout, che regola l'intera interazione per l'invio di un messaggio (inclusa la ricezione di un messaggio di risposta in un caso di richiesta-risposta). Questo timeout si applica anche quando si inviano messaggi di risposta da un metodo CallbackContract.
  • OpenTimeout e CloseTimeout vengono utilizzati durante l'apertura e la chiusura dei canali (quando non viene passato alcun valore di timeout esplicito).
  • ReceiveTimeout non è utilizzato.

Lato server:

  • Timeout di invio, apertura e chiusura come sul client (per callback).
  • ReceiveTimeout viene utilizzato dal livello ServiceFramework per inizializzare il timeout di inattività della sessione.

La fonte è Brian McNamara nei forum MSDN .

Altri suggerimenti

Vedi " Timeout in WCF e i loro valori predefiniti " http : //blogs.msdn.com/b/hongmeig/archive/2010/03/06/timeouts-in-wcf-and-their-default-values.aspx

  

Timeout su binding-SendTimeout, ReceiveTimeout,   OpenTimeout e CloseTimeout. Possono essere impostati facilmente attraverso   configurazione o codice sul Binding. Il valore predefinito per questi sono 1   minuto.

     

ServiceHost ha OpenTimeout e CloseTimeout. Predefinito per OpenTimeout   è 1 minuto e il valore predefinito per CloseTimeout è 10 secondi.

     

Timeout sul canale lato client. C'è un OperationTimeout, che   puoi impostarlo trasmettendo il canale su IContextChannel. Il predefinito   per questo è anche 1 minuto. Ttimeout sul trasporto tcp, chiamato   ChannelInitializationTimeout e il suo valore predefinito è 5 secondi.

     

ASPNET. Esistono timeout di arresto, proprio come la chiusura dell'host del servizio   timeout, il valore predefinito è 90 secondi. ExecutionTimeout, proprio come il nostro   timeout operazione, il valore predefinito è 110 secondi.

Oltre a quello che c'era in quel post, c'è anche il Timeout dell'operazione definito sul lato client. Vedi questo:

http://final-proj.blogspot.com/2009 /09/wcf-timeouts.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top