ServicePoint.SetTcpKeepAlive(Boolean, Int32, Int32) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Abilita o disabilita l'opzione keep-alive in una connessione TCP.
public:
void SetTcpKeepAlive(bool enabled, int keepAliveTime, int keepAliveInterval);
public void SetTcpKeepAlive(bool enabled, int keepAliveTime, int keepAliveInterval);
member this.SetTcpKeepAlive : bool * int * int -> unit
Public Sub SetTcpKeepAlive (enabled As Boolean, keepAliveTime As Integer, keepAliveInterval As Integer)
Parametri
- enabled
- Boolean
Se impostato su true, l'opzione keep-alive TCP in una connessione TCP verrà abilitata usando i valori e keepAliveInterval specificatikeepAliveTime.
Se è impostato su false, l'opzione keep-alive TCP è disabilitata e i parametri rimanenti vengono ignorati.
Il valore predefinito è false.
- keepAliveTime
- Int32
Specifica il timeout, espresso in millisecondi, senza attività fino all'invio del primo pacchetto keep-alive.
Il valore deve essere maggiore di 0. Se viene passato un valore minore o uguale a zero, viene generata un'eccezione ArgumentOutOfRangeException .
- keepAliveInterval
- Int32
Specifica l'intervallo, espresso in millisecondi, tra l'invio di pacchetti keep-alive successivi se non viene ricevuto alcun acknowledgement.
Il valore deve essere maggiore di 0. Se viene passato un valore minore o uguale a zero, viene generata un'eccezione ArgumentOutOfRangeException .
Eccezioni
Il valore specificato per keepAliveTime o keepAliveInterval parametro è minore o uguale a 0.
Commenti
Cautela
WebRequest
HttpWebRequest, ServicePoint, e WebClient sono obsoleti e non è consigliabile usarli per il nuovo sviluppo. Utilizzare invece HttpClient.
Un'applicazione può richiedere che un provider TCP/IP consenta l'uso di pacchetti keep-alive su una connessione TCP. Il valore predefinito è che l'uso di pacchetti keep-alive in una connessione TCP è disabilitato.
Le impostazioni predefinite quando un socket TCP viene inizializzato imposta il timeout keep-alive su 2 ore e l'intervallo keep-alive su 1 secondo. Il keepAliveTime parametro specifica il timeout, in millisecondi, senza attività finché non viene inviato il primo pacchetto keep-alive. Il keepAliveInterval parametro specifica l'intervallo, espresso in millisecondi, tra l'invio di pacchetti keep-alive successivi se non viene ricevuto alcun acknowledgement. Il numero di probe keep-alive non può essere modificato ed è impostato su 10.
Se una connessione TCP viene eliminata come risultato di keep-alive, un SocketError di NetworkReset viene restituito a tutte le chiamate in corso sul socket e tutte le chiamate successive avranno esito negativo con un SocketError di NotConnected.
Questo metodo non è thread-safe. Qualsiasi nuova connessione creata contemporaneamente potrebbe visualizzare valori parzialmente modificati per il keep-alive TCP.
Annotazioni
Da .NET 9, HttpWebRequest usa SocketsHttpHandler.ConnectCallback per impostare le opzioni keep-alive TCP nel socket sottostante sui valori forniti a questo metodo.