Compartilhar via


ServicePointManager.SetTcpKeepAlive(Boolean, Int32, Int32) Método

Definição

Habilita ou desabilita a opção keep-alive em uma conexão TCP.

public:
 static void SetTcpKeepAlive(bool enabled, int keepAliveTime, int keepAliveInterval);
public static void SetTcpKeepAlive(bool enabled, int keepAliveTime, int keepAliveInterval);
static member SetTcpKeepAlive : bool * int * int -> unit
Public Shared Sub SetTcpKeepAlive (enabled As Boolean, keepAliveTime As Integer, keepAliveInterval As Integer)

Parâmetros

enabled
Boolean

Se definido como true, a opção de keep-alive TCP em uma conexão TCP será habilitada usando os valores especificados keepAliveTimekeepAliveInterval .

Se definido como false, a opção keep-alive TCP será desabilitada e os parâmetros restantes serão ignorados.

O valor padrão é false.

keepAliveTime
Int32

Especifica o tempo limite, em milissegundos, sem atividade até que o primeiro pacote keep-alive seja enviado.

O valor deve ser maior que 0. Se um valor menor ou igual a zero for passado, um ArgumentOutOfRangeException será gerado.

keepAliveInterval
Int32

Especifica o intervalo, em milissegundos, entre quando os pacotes keep-alive sucessivos são enviados se nenhuma confirmação for recebida.

O valor deve ser maior que 0. Se um valor menor ou igual a zero for passado, um ArgumentOutOfRangeException será gerado.

Exceções

O valor especificado para keepAliveTime ou keepAliveInterval parâmetro é menor ou igual a 0.

Comentários

Um aplicativo pode solicitar que um provedor TCP/IP habilite o uso de pacotes keep-alive em uma conexão TCP. O padrão é que o uso de pacotes keep-alive em uma conexão TCP está desabilitado.

As configurações padrão quando um soquete TCP é inicializado definem o tempo limite de keep-alive como 2 horas e o intervalo keep-alive como 1 segundo. O keepAliveTime parâmetro especifica o tempo limite, em milissegundos, sem atividade até que o primeiro pacote keep-alive seja enviado. O keepAliveInterval parâmetro especifica o intervalo, em milissegundos, entre quando os pacotes keep-alive sucessivos são enviados se nenhuma confirmação for recebida. O número de investigações keep-alive não pode ser alterado e é definido como 10.

Se uma conexão TCP for descartada como resultado de keep-alives, uma SocketError das NetworkReset chamadas será retornada para todas as chamadas em andamento no soquete e as chamadas subsequentes falharão com um SocketError de NotConnected.

Esse método não é thread-safe. Qualquer ServicePoint um criado ao mesmo tempo pode ver valores parcialmente alterados para o keep-alive do TCP.

Observação

Desde o .NET 9, HttpWebRequest usa SocketsHttpHandler.ConnectCallback para definir opções de manter ativas TCP no soquete subjacente para os valores fornecidos para esse método.

Aplica-se a

Confira também