ServicePoint.ConnectionLeaseTimeout Propriété

Définition

Obtient ou définit le nombre de millisecondes après quoi une connexion active ServicePoint est fermée.

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

Valeur de propriété

Valeur Int32 qui spécifie le nombre de millisecondes qu’une connexion active ServicePoint reste ouverte. La valeur par défaut est -1, ce qui permet à une connexion active ServicePoint de rester connectée indéfiniment. Définissez cette propriété sur 0 pour forcer ServicePoint la fermeture des connexions après la maintenance d’une demande.

Exceptions

La valeur spécifiée pour une opération de jeu est un nombre négatif inférieur à -1.

Exemples

L’exemple de code suivant définit la valeur de cette propriété.

using System;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Threading;

namespace Examples.System.Net
{
    public class ServicePointExample
    {
        // Pass in the name of the Web page to retrieve.
        public static void Main(string[] args)
        {
            string page;
            if (args == null || args.Length == 0 || args[0].Length == 0)
            {
                page = "http://www.contoso.com/default.html";
            }
            else
            {
                page = args[0];
            }
            // Create the request.
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(page);
            // Get the service point that handles the request's socket connection.
            ServicePoint point = request.ServicePoint;
            // Set the receive buffer size on the underlying socket.
            point.ReceiveBufferSize = 2048;
            // Set the connection lease timeout to infinite.
            point.ConnectionLeaseTimeout = Timeout.Infinite;
            // Send the request.
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream responseStream = response.GetResponseStream();
            StreamReader s = new StreamReader(responseStream);
            // Display the response.
            Console.WriteLine(s.ReadToEnd());
            s.Close();
            responseStream.Close();
            response.Close();
        }
    }
}
Imports System.Net
Imports System.Net.Sockets
Imports System.IO
Imports System.Threading

Public Class ServicePointExample

    ' Pass in the name of the Web page to retrieve.
    Public Shared Sub Main(ByVal args() As String)
        Dim page As String
        If args Is Nothing OrElse args.Length = 0 OrElse args(0).Length = 0 Then
            page = "http://www.contoso.com/default.html"
        Else
            page = args(0)
        End If

        Dim request As HttpWebRequest = CType(WebRequest.Create(page), HttpWebRequest)
        ' Get the service point that handles the request's socket connection.
        Dim point As ServicePoint = request.ServicePoint
        ' Set the receive buffer size on the underlying socket.
        point.ReceiveBufferSize = 2048
        ' Set the connection lease timeout to infinite.
        point.ConnectionLeaseTimeout = Timeout.Infinite
        ' Send the request.
        Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
        Dim responseStream As Stream = response.GetResponseStream()
        Dim s As New StreamReader(responseStream)
        ' Display the response.
        Console.WriteLine(s.ReadToEnd())
        responseStream.Close()
        response.Close()
    End Sub
End Class

Remarques

Avertissement

WebRequest, , HttpWebRequestServicePointet sont obsolètes, et WebClient vous ne devez pas les utiliser pour le nouveau développement. Utilisez HttpClient à la place.

Vous pouvez utiliser cette propriété pour vous assurer que les connexions actives d’un ServicePoint objet ne restent pas ouvertes indéfiniment. Cette propriété est destinée aux scénarios où les connexions doivent être supprimées et rétablies périodiquement, telles que les scénarios d’équilibrage de charge.

Par défaut, quand il KeepAlive s’agit true d’une requête, la MaxIdleTime propriété définit le délai d’attente pour la fermeture ServicePoint des connexions en raison de l’inactivité. Si les ServicePoint connexions sont actives, MaxIdleTime elles n’ont aucun effet et les connexions restent ouvertes indéfiniment.

Lorsque la ConnectionLeaseTimeout propriété est définie sur une valeur autre que -1 et après le délai spécifié, une connexion active ServicePoint est fermée après la maintenance d’une demande en définissant KeepAlive la valeur dans false cette demande.

La définition de cette valeur affecte toutes les connexions gérées par l’objet ServicePoint .

Note

Depuis .NET 9, cette propriété est mappée à SocketsHttpHandler.PooledConnectionLifetime. Toutefois, les gestionnaires ne sont pas réutilisés entre les requêtes afin qu’ils n’aient aucun impact significatif.

S’applique à

Voir aussi