ServicePoint.ConnectionLeaseTimeout Propiedad

Definición

Obtiene o establece el número de milisegundos después del cual se cierra una conexión activa ServicePoint .

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

Valor de propiedad

que Int32 especifica el número de milisegundos que permanece abierta una conexión activa ServicePoint . El valor predeterminado es -1, que permite que una conexión activa ServicePoint permanezca conectada indefinidamente. Establezca esta propiedad en 0 para forzar ServicePoint que las conexiones se cierren después de atender una solicitud.

Excepciones

El valor especificado para una operación de conjunto es un número negativo menor que -1.

Ejemplos

En el ejemplo de código siguiente se establece el valor de esta propiedad.

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

Comentarios

Caution

WebRequest, HttpWebRequest, ServicePointy WebClient están obsoletos y no debe usarlos para el nuevo desarrollo. Utilice HttpClient en su lugar.

Puede usar esta propiedad para asegurarse de que las conexiones activas de un ServicePoint objeto no permanecen abiertas indefinidamente. Esta propiedad está pensada para escenarios en los que se deben quitar y restablecer las conexiones periódicamente, como escenarios de equilibrio de carga.

De forma predeterminada, cuando KeepAlive es true para una solicitud, la MaxIdleTime propiedad establece el tiempo de espera para cerrar ServicePoint las conexiones debido a la inactividad. Si tiene ServicePoint conexiones activas, MaxIdleTime no tiene ningún efecto y las conexiones permanecen abiertas indefinidamente.

Cuando la ConnectionLeaseTimeout propiedad se establece en un valor distinto de -1 y después de que transcurre el tiempo especificado, se cierra una conexión activa ServicePoint después de atender una solicitud estableciendo KeepAlivefalse en en esa solicitud.

Establecer este valor afecta a todas las conexiones administradas por el ServicePoint objeto .

Note

Desde .NET 9, esta propiedad se asigna a SocketsHttpHandler.PooledConnectionLifetime. Sin embargo, los controladores no se reutilizan entre solicitudes, por lo que no tiene ningún impacto significativo.

Se aplica a

Consulte también