2008-10-23 31 views
61

¿Cómo funcionan los tiempos de espera en WCF? Sé por ejemplo que puede configurar sendTimeout y receiveTimeout para un enlace de clientes. Pero, como trabajan?Tiempos de espera WCF Services

MSDN describe SendTimeout como:

Un valor TimeSpan que especifica el intervalo de tiempo proporcionado para una operación de Enviar para completar. Este valor debe ser mayor o igual que a cero. El valor predeterminado es 00:01:00.

¿Qué son operaciones de envío/operaciones de recepción?

Respuesta

61

lado del cliente:

  • SendTimeout se utiliza para inicializar el OperationTimeout, que gobierna toda la interacción para el envío de un mensaje (incluyendo la recepción de un mensaje de respuesta en un caso de petición-respuesta). Este tiempo de espera también se aplica al enviar mensajes de respuesta desde un método CallbackContract.
  • OpenTimeout y CloseTimeout se utilizan al abrir y cerrar canales (cuando no se pasa ningún valor explícito de tiempo de espera).
  • ReceiveTimeout no se utiliza.

lado del servidor:

  • enviar, abrir y cerrar de tiempo de espera igual que en el cliente (por devoluciones de llamada).
  • ReceiveTimeout es utilizado por la capa ServiceFramework para inicializar el tiempo de inactividad de la sesión inactiva.

La fuente es Brian McNamara on MSDN forums.

+0

Este enlace está muerto, ¿alguien puede actualizarlo? – BrettRobi

+5

El enlace funciona para mí – Brian

+0

Si configuro OperationTimeout en un valor muy alto y sendTimeout en un valor ridículamente pequeño, que en esencia debería expirar, nunca recibo una excepción de tiempo de espera. ¿Alguien puede decirme cómo puedo configurar un ejemplo para activar la excepción sendTimeout? –

9

Véase "Tiempos de espera en WCF y sus valores predeterminados" http://blogs.msdn.com/b/hongmeig/archive/2010/03/06/timeouts-in-wcf-and-their-default-values.aspx

tiempos de espera en la unión-SendTimeout, ReceiveTimeout, OpenTimeout y CloseTimeout. Se pueden configurar fácilmente a través de configuración o código en el enlace. El valor predeterminado para ésos es 1 minuto.

ServiceHost tiene OpenTimeout y CloseTimeout. El valor predeterminado para OpenTimeout es de 1 minuto, y el predeterminado para CloseTimeout es de 10 segundos.

Tiempos de espera en el canal del lado del cliente. Hay un OperationTimeout, que puede configurar lanzando el canal a IContextChannel. El valor predeterminado para esto también es de 1 minuto. Ttimeout en el transporte tcp, llamado ChannelInitializationTimeout, y su valor predeterminado es 5 segundos.

ASPNET.Hay un tiempo de espera de apagado, al igual que el host de servicio cierra el tiempo de espera , el valor predeterminado es 90 segundos. ExecutionTimeout, al igual que nuestro tiempo de espera de operación , el valor predeterminado es de 110 segundos.