Binding.ReceiveTimeout Propriedade

Definição

Obtém ou define o intervalo de tempo em que uma ligação pode permanecer inativa, durante o qual não são recebidas mensagens de aplicação, antes de ser cortada.

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

Valor de Propriedade

Isso TimeSpan especifica quanto tempo a candidatura tem para receber uma mensagem antes de expirar. O valor padrão é 10 minutos.

Exceções

O valor é inferior a zero ou demasiado alto.

Observações

Ao usar uma sessão fiável, existem dois temporizadores de inatividade diferentes que devem ser cumpridos para manter a ligação viva. Se algum destes temporizadores de inatividade disparar, a ligação é cortada.

  • O primeiro temporizador de inatividade está na sessão fiável e é chamado de InactivityTimeout. Este temporizador de inatividade dispara-se se não forem recebidas mensagens, seja de aplicação ou infraestrutura, dentro do período de timeout. Uma mensagem de infraestrutura é uma mensagem gerada para o propósito de um dos protocolos na pilha de canais, como um keep alive ou um reconhecimento, em vez de conter dados de aplicação.

  • O segundo temporizador de inatividade está no serviço e utiliza a ReceiveTimeout definição da ligação. Este temporizador de inatividade ativa se não forem recebidas mensagens de aplicação dentro do período de timeout. Isto especifica, por exemplo, o tempo máximo que um cliente pode demorar a enviar pelo menos uma mensagem ao servidor antes de este fechar o canal utilizado por uma sessão. Este comportamento garante que os clientes não conseguem manter recursos do servidor por períodos arbitrariamente longos.

Como a ligação é cortada se algum temporizador de inatividade disparar, aumentar InactivityTimeout quando for maior de ReceiveTimeout não tem efeito. O padrão para ambos estes tempos é 10 minutos, por isso tens sempre de aumentar ambos para fazer diferença quando usas uma sessão fiável.

Se o fluxo de transações estiver ativado no binding ou no canal, a operação pode demorar mais tempo a executar do que o timeout especificado. Nestas circunstâncias, a operação falha devido ao tempo expirado e a transação aborta adequadamente.

Quando a segurança é usada com as sessões, o ReceiveTimeout valor definido na ligação também é usado como o timeout da sessão.

Aplica-se a