ReliableSession.InactivityTimeout Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define um intervalo de tempo para que um serviço possa permanecer inativo antes do fecho.
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 de Propriedade
O TimeSpan que especifica o intervalo de tempo em que um serviço permanece inativo antes do encerramento. O valor predefinido é 10 minutos.
Exceções
O conjunto de valores é 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)
Observações
A propriedade recebe e define o valor da InactivityTimeout propriedade.
Atividade num canal é definida como receber uma mensagem de aplicação ou infraestrutura. A propriedade de tempo de inatividade controla o tempo máximo para manter uma sessão inativa viva. Se passar mais do que o intervalo InactivityTimeout de tempo especificado sem atividade, a sessão é abortada pela infraestrutura e pelas falhas do canal. A sessão fiável é desmontada unilateralmente.
Se a aplicação de envio não tiver mensagens para enviar, então a sessão fiável normalmente não é falhada devido à inatividade; em vez disso, um mecanismo de manutenção ativa mantém a sessão ativa indefinidamente. Note que o despachante pode abortar independentemente a sessão fiável se não forem enviadas ou recebidas mensagens de aplicação. Assim, o tempo de inatividade normalmente expira se as condições da rede forem tais que nenhuma mensagem de qualquer tipo seja recebida ou se houver uma falha no remetente.
Definir este timeout impede que o servidor mantenha uma sessão de segurança se o cliente não a fechar. Se a sessão de segurança não tiver recebido uma mensagem para o intervalo de inatividade, é encerrada pelo servidor. Isto mitiga um possível ataque de negação de serviço.
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.
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.