Partilhar via


Binding.ReceiveTimeout Propriedade

Definição

Obtém ou define o intervalo de tempo que uma conexão pode permanecer inativa, durante o qual nenhuma mensagem de aplicativo é recebida, antes de seu descarte.

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 da propriedade

O TimeSpan que especifica quanto tempo o aplicativo precisa receber uma mensagem antes de atingir o tempo limite. O valor padrão é 10 minutos.

Exceções

O valor é menor que zero ou é muito grande.

Comentários

Ao usar uma sessão confiável, há dois temporizadores de inatividade diferentes que devem ser atendidos para manter a conexão ativa. Se um desses temporizadores de inatividade desativar, a conexão será descartada.

  • O primeiro temporizador de inatividade está na sessão confiável e é chamado de InactivityTimeout. Esse temporizador de inatividade será acionado se nenhuma mensagem, aplicativo ou infraestrutura, for recebida dentro do período de tempo limite. Uma mensagem de infraestrutura é uma mensagem que é gerada para fins de um dos protocolos na pilha de canais, como um keep alive ou uma confirmação, em vez de conter dados do aplicativo.

  • O segundo temporizador de inatividade está no serviço e usa a ReceiveTimeout configuração da associação. Esse temporizador de inatividade será acionado se nenhuma mensagem de aplicativo for recebida no período de tempo limite. Isso especifica, por exemplo, o tempo máximo que um cliente pode levar para enviar pelo menos uma mensagem ao servidor antes que o servidor feche o canal usado por uma sessão. Esse comportamento garante que os clientes não possam manter os recursos do servidor por longos períodos arbitrários.

Como a conexão será descartada se um temporizador de inatividade for acionado, aumentará InactivityTimeout uma vez que ele for maior do que ReceiveTimeout não terá efeito. O padrão para ambos os tempos limite é 10 minutos, portanto, você sempre precisa aumentar ambos para fazer a diferença ao usar uma sessão confiável.

Se o fluxo de transação estiver habilitado na associação ou no canal, a operação poderá levar mais tempo para ser executada do que o tempo limite especificado. Nessas circunstâncias, a operação falha devido ao tempo limite expirado e a transação é anulada adequadamente.

Quando a segurança é usada com sessões, o ReceiveTimeout valor definido na associação também é usado como o tempo limite da sessão.

Aplica-se a