it-swarm.com.de

Timeouts WCF-Dienste

Wie funktionieren die Timeouts in WCF? Ich weiß zum Beispiel, dass Sie sendTimeout und receiveTimeout für eine Clientbindung konfigurieren können. Aber wie arbeiten sie?

MSDN beschreibt sendTimeout als:

Ein TimeSpan-Wert, der das Zeitintervall angibt, in dem ein Sendevorgang abgeschlossen werden soll. Dieser Wert sollte größer oder gleich Null sein. Der Standardwert ist 00:01:00.

Was sind Sendeoperationen/Empfangsoperationen?

61
TruckerG

Client Seite:

  • SendTimeout wird verwendet, um das OperationTimeout zu initialisieren, das die gesamte Interaktion zum Senden einer Nachricht regelt (einschließlich des Empfangs einer Antwortnachricht in einem Anfrage-Antwort-Fall). Dieses Zeitlimit gilt auch für das Senden von Antwortnachrichten von einer CallbackContract-Methode.
  • OpenTimeout und CloseTimeout werden beim Öffnen und Schließen von Kanälen verwendet (wenn kein expliziter Timeout-Wert übergeben wird).
  • ReceiveTimeout wird nicht verwendet.

Serverseite:

  • Zeitlimit für Senden, Öffnen und Schließen wie auf dem Client (für Rückrufe).
  • ReceiveTimeout wird von der ServiceFramework-Ebene zum Initialisieren des Sitzungsleerlaufzeitlimits verwendet.

Die Quelle ist Brian McNamara in MSDN-Foren .

61
Brian

Siehe "Zeitüberschreitungen in WCF und ihre Standardwerte" http://blogs.msdn.com/b/hongmeig/archive/2010/03/06/timeouts-in-wcf-and-their-default-values. aspx

Timeouts für Binding-SendTimeout, ReceiveTimeout, OpenTimeout und CloseTimeout. Sie können einfach über config oder Code in der Bindung eingestellt werden. Der Standardwert hierfür ist 1 Minute.

ServiceHost verfügt über OpenTimeout und CloseTimeout. Die Standardeinstellung für OpenTimeout ist 1 Minute und für CloseTimeout 10 Sekunden.

Timeouts auf dem clientseitigen Kanal. Es gibt ein OperationTimeout, das Sie festlegen können, indem Sie den Kanal in IContextChannel umwandeln. Der Standardwert hierfür ist ebenfalls 1 Minute. Ttimeout für TCP-Transport, ChannelInitializationTimeout genannt, und sein Standardwert ist 5 Sekunden.

ASPNET. Es gibt ein Zeitlimit für das Herunterfahren, genau wie das Zeitlimit für das Schließen des Diensthosts. Der Standardwert beträgt 90 Sekunden. Das ExecutionTimeout beträgt, genau wie unser Operation Timeout, standardmäßig 110 Sekunden.

9

Zusätzlich zu dem, was sich auf diesem Post befand, gibt es auch das auf der Client-Seite definierte Operation Timeout. Sieh dir das an:

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

4
sq33G