Compartilhar via


ReliableSession.InactivityTimeout Propriedade

Definição

Obtém ou define o intervalo de tempo durante o qual um serviço pode permanecer inativo antes de ser fechado.

public:
 property TimeSpan InactivityTimeout { TimeSpan get(); void set(TimeSpan value); };
public TimeSpan InactivityTimeout { get; set; }
member this.InactivityTimeout : TimeSpan with get, set
Public Property InactivityTimeout As TimeSpan

Valor da propriedade

TimeSpan

O TimeSpan que especifica o intervalo de tempo que um serviço permanece inativo antes de ser fechado. O valor padrão é 10 minutos.

Exceções

O valor definido é menor ou igual a zero.

Exemplos

// Create a new reliable session object
ReliableSessionBindingElement bindingElement = new ReliableSessionBindingElement();
ReliableSession reliableSession = new ReliableSession(bindingElement);

// Now you can access property values
Console.WriteLine("Ordered: {0}", reliableSession.Ordered);
Console.WriteLine("InactivityTimeout: {0}", reliableSession.InactivityTimeout);
' Create a new reliable session object
Dim bindingElement As ReliableSessionBindingElement = New ReliableSessionBindingElement()
Dim reliableSession As ReliableSession = New ReliableSession(bindingElement)

' Now you can access property values
Console.WriteLine("Ordered: {0}", reliableSession.Ordered)
Console.WriteLine("InactivityTimeout: {0}", reliableSession.InactivityTimeout)

Comentários

A propriedade obtém e define o valor da InactivityTimeout propriedade.

A atividade em um canal é definida como recebendo uma mensagem de aplicativo ou infraestrutura. A propriedade de tempo limite de inatividade controla a quantidade máxima de tempo para manter uma sessão inativa ativa. Se mais do que o InactivityTimeout intervalo de tempo especificado passar sem atividade, a sessão será anulada pela infraestrutura e pelas falhas de canal. A sessão confiável é interrompida unilateralmente.

Se o aplicativo de envio não tiver mensagens para enviar, a sessão confiável normalmente não terá falha devido à inatividade; em vez disso, um mecanismo keep-alive mantém a sessão ativa indefinidamente. Observe que o dispatcher poderá anular independentemente a sessão confiável se nenhuma mensagem de aplicativo for enviada ou recebida. Assim, o tempo limite de inatividade normalmente expira se as condições de rede forem tais que nenhuma mensagem de qualquer tipo seja recebida ou se houver uma falha no remetente.

A configuração desse tempo limite impede que o servidor se assegure em uma sessão de segurança se o cliente não o fechar. Se a sessão de segurança não tiver recebido uma mensagem para o intervalo de tempo de inatividade, ela será fechada pelo servidor. Isso atenua um possível ataque de negação de serviço.

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 for desativado, 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 gerada com a finalidade 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 dentro do período limite.

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

Aplica-se a