Binding.ReceiveTimeout Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.