ServicePoint.ConnectionLeaseTimeout Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die Anzahl der Millisekunden ab, nach denen eine aktive ServicePoint Verbindung geschlossen wird, oder legt diese fest.
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
Eigenschaftswert
Ein Int32 Wert, der die Anzahl der Millisekunden angibt, die eine aktive ServicePoint Verbindung geöffnet bleibt. Der Standardwert ist -1, wodurch eine aktive ServicePoint Verbindung unbegrenzt verbunden bleiben kann. Legen Sie diese Eigenschaft auf 0 fest, um zu erzwingen ServicePoint , dass Verbindungen nach dem Warten einer Anforderung geschlossen werden.
Ausnahmen
Der für einen Set-Vorgang angegebene Wert ist eine negative Zahl kleiner als -1.
Beispiele
Im folgenden Codebeispiel wird der Wert dieser Eigenschaft festgelegt.
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
Hinweise
Vorsicht
WebRequest, HttpWebRequest, ServicePointund WebClient sind veraltet, und Sie sollten sie nicht für die neue Entwicklung verwenden. Verwenden Sie stattdessen HttpClient.
Sie können diese Eigenschaft verwenden, um sicherzustellen, dass die aktiven Verbindungen eines ServicePoint Objekts nicht unbegrenzt geöffnet bleiben. Diese Eigenschaft ist für Szenarien vorgesehen, in denen Verbindungen gelöscht und in regelmäßigen Abständen wie Lastenausgleichsszenarien neu aufgebaut werden sollen.
Wenn eine Anforderung verwendet wirdtrue, legt die MaxIdleTime Eigenschaft standardmäßig KeepAlive das Timeout für das Schließen ServicePoint von Verbindungen aufgrund von Inaktivität fest. Wenn die ServicePoint verbindungen aktiv sind, hat sie keine Auswirkung, MaxIdleTime und die Verbindungen bleiben unbegrenzt geöffnet.
Wenn die ConnectionLeaseTimeout Eigenschaft auf einen anderen Wert als -1 festgelegt ist und nach ablauf der angegebenen Zeit eine aktive ServicePoint Verbindung geschlossen wird, nachdem eine Anforderung gewartet wurde, indem sie in dieser Anforderung festgelegt KeepAlivefalse wird.
Das Festlegen dieses Werts wirkt sich auf alle vom Objekt verwalteten Verbindungen aus ServicePoint .
Note
Seit .NET 9 ist diese Eigenschaft zugeordnet SocketsHttpHandler.PooledConnectionLifetime. Handler werden jedoch nicht zwischen Anforderungen wiederverwendet, sodass sie keine sinnvollen Auswirkungen haben.