61 votes

Délais d'attente des services WCF

Comment les délais d'attente fonctionnent-ils dans WCF ? Je sais par exemple que vous pouvez configurer sendTimeout y receiveTimeout pour une liaison avec les clients. Mais comment fonctionnent-ils ?

MSDN décrit sendTimeout comme :

Une valeur de TimeSpan qui spécifie l'intervalle de temps prévu pour une l'opération d'envoi se termine. Cette valeur doit être supérieure ou égale à à zéro. La valeur par défaut est 00:01:00.

Que sont les opérations d'envoi/réception ?

61voto

Brian Points 82719

Côté client :

  • SendTimeout est utilisé pour initialiser le OperationTimeout, qui régit l'ensemble de l'interaction pour l'envoi d'un message (y compris la réception d'un message de réponse dans un cas de demande-réponse). Ce délai d'attente s'applique également à l'envoi de messages de réponse à partir d'une méthode CallbackContract.
  • OpenTimeout et CloseTimeout sont utilisés lors de l'ouverture et de la fermeture des canaux (lorsqu'aucune valeur de délai explicite n'est passée).
  • ReceiveTimeout n'est pas utilisé.

Côté serveur :

  • Délai d'envoi, d'ouverture et de fermeture identique à celui du client (pour les Callbacks).
  • ReceiveTimeout est utilisé par la couche ServiceFramework pour initialiser le délai d'attente de la session.

La source est Brian McNamara sur les forums MSDN .

9voto

Michael Freidgeim Points 4002

Voir "Timeouts dans WCF et leurs valeurs par défaut". http://blogs.msdn.com/b/hongmeig/archive/2010/03/06/timeouts-in-wcf-and-their-default-values.aspx

Délais d'attente sur la liaison - SendTimeout, ReceiveTimeout, OpenTimeout et CloseTimeout. Ils peuvent être facilement définis soit par le biais de config ou le code sur le Binding. La valeur par défaut est de 1 minute.

ServiceHost a OpenTimeout et CloseTimeout. La valeur par défaut de OpenTimeout est de 1 minute, et la valeur par défaut de CloseTimeout est de 10 secondes.

Délais d'attente sur le canal côté client. Il existe un OperationTimeout, que vous pouvez le définir en coulant le canal en IContextChannel. La valeur par défaut pour cela est également de 1 minute. Ttimeout sur le transport tcp, appelé ChannelInitializationTimeout, et sa valeur par défaut est de 5 secondes.

ASPNET. Il existe des délais d'arrêt, tout comme la fermeture de l'hôte du service par défaut est de 90 secondes. ExecutionTimeout, tout comme notre d'opération, la valeur par défaut est de 110 secondes.

4voto

En plus de ce qui était sur ce post, il y a aussi le délai d'opération défini du côté du client. Voir ceci :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X