Freigeben über


ServicePointManager.SetTcpKeepAlive(Boolean, Int32, Int32) Methode

Definition

Aktiviert oder deaktiviert die Keep-Alive-Option für eine TCP-Verbindung.

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)

Parameter

enabled
Boolean

Wenn dieser Wert auf "true" festgelegt ist, wird die TCP-Keep-Alive-Option für eine TCP-Verbindung mithilfe der angegebenen keepAliveTime Werte keepAliveInterval aktiviert.

Wenn dieser Wert auf "false" festgelegt ist, wird die TCP-Keep-Alive-Option deaktiviert, und die verbleibenden Parameter werden ignoriert.

Der Standardwert ist "false".

keepAliveTime
Int32

Gibt das Timeout in Millisekunden ohne Aktivität an, bis das erste Keep-Alive-Paket gesendet wird.

Der Wert muss größer als 0 sein. Wenn ein Wert kleiner als oder gleich Null übergeben wird, wird ein ArgumentOutOfRangeException Fehler ausgelöst.

keepAliveInterval
Int32

Gibt das Intervall in Millisekunden an, zwischen dem aufeinander folgenden Keep-Alive-Paketen gesendet werden, wenn keine Bestätigung empfangen wird.

Der Wert muss größer als 0 sein. Wenn ein Wert kleiner als oder gleich Null übergeben wird, wird ein ArgumentOutOfRangeException Fehler ausgelöst.

Ausnahmen

Der für keepAliveTime oder keepAliveInterval Parameter angegebene Wert ist kleiner oder gleich 0.

Hinweise

Eine Anwendung kann anfordern, dass ein TCP/IP-Anbieter die Verwendung von Keep-Alive-Paketen für eine TCP-Verbindung ermöglicht. Der Standardwert ist, dass die Verwendung von Keep-Alive-Paketen für eine TCP-Verbindung deaktiviert ist.

Die Standardeinstellungen, wenn ein TCP-Socket initialisiert wird, legt das Keep-Alive-Timeout auf 2 Stunden und das Keep-Alive-Intervall auf 1 Sekunde fest. Der keepAliveTime Parameter gibt das Timeout in Millisekunden ohne Aktivität an, bis das erste Keep-Alive-Paket gesendet wird. Der keepAliveInterval Parameter gibt das Intervall in Millisekunden an, zwischen dem aufeinander folgenden Keep-Alive-Paketen gesendet werden, wenn keine Bestätigung empfangen wird. Die Anzahl der Keep-Alive-Sonden kann nicht geändert werden und ist auf 10 festgelegt.

Wenn eine TCP-Verbindung als Ergebnis von Keep-Alives verworfen wird, wird ein SocketError Von NetworkReset an alle Aufrufe zurückgegeben, die im Socket ausgeführt werden, und alle nachfolgenden Aufrufe schlagen mit einem von NotConnected.SocketError

Diese Methode ist nicht threadsicher. Alle ServicePoint gleichzeitig erstellten Werte werden möglicherweise teilweise geänderte Werte für den TCP-Keep-Alive angezeigt.

Hinweis

Seit .NET 9 wird verwendetSocketsHttpHandler.ConnectCallback, um TCP-Keep-Alive-Optionen für den zugrunde liegenden Socket auf die Werte festzulegen, HttpWebRequest die für diese Methode bereitgestellt werden.

Gilt für:

Weitere Informationen