ServicePoint.ConnectionLeaseTimeout Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define o número de milissegundos após os quais uma ligação ativa ServicePoint é encerrada.
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 Propriedade
A Int32 que especifica o número de milissegundos em que uma ligação ativa ServicePoint permanece aberta. O valor padrão é -1, o que permite que uma ligação ativa ServicePoint permaneça ligada indefinidamente. Defina esta propriedade para 0 para forçar ServicePoint o encerramento das ligações após o serviço de um pedido.
Exceções
O valor especificado para uma operação de conjunto é um número negativo inferior a -1.
Exemplos
O seguinte exemplo de código define o valor desta propriedade.
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
Observações
Atenção
WebRequest, HttpWebRequest, ServicePoint, e WebClient são obsoletos, e não deves usá-los para novos desenvolvimentos. Utilize HttpClient em substituição.
Pode usar esta propriedade para garantir que as ligações ativas de um ServicePoint objeto não permaneçam abertas indefinidamente. Esta propriedade destina-se a cenários em que as ligações devem ser cortadas e restabelecidos periodicamente, como em cenários de balanceamento de carga.
Por defeito, quando KeepAlive é true para um pedido, a MaxIdleTime propriedade define o tempo limite para encerrar ServicePoint ligações devido à inatividade. Se tiver ServicePoint ligações ativas, MaxIdleTime não tem efeito e as ligações permanecem abertas indefinidamente.
Quando a ConnectionLeaseTimeout propriedade é definida para um valor diferente de -1, e após o tempo especificado decorrer, uma ligação ativa ServicePoint é encerrada após servir um pedido, definindo KeepAlive como false nesse pedido.
Definir este valor afeta todas as ligações geridas pelo ServicePoint objeto.
Note
Desde .NET 9, esta propriedade corresponde a SocketsHttpHandler.PooledConnectionLifetime. No entanto, os handlers não são reutilizados entre pedidos, por isso não tem qualquer impacto significativo.