ServicePoint.ConnectionLeaseTimeout Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt het aantal milliseconden opgehaald of ingesteld waarna een actieve ServicePoint verbinding wordt gesloten.
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
Waarde van eigenschap
Een Int32 met het aantal milliseconden dat een actieve ServicePoint verbinding open blijft. De standaardwaarde is -1, waardoor een actieve ServicePoint verbinding voor onbepaalde tijd verbonden blijft. Stel deze eigenschap in op 0 om te forceren ServicePoint dat verbindingen worden gesloten na het uitvoeren van een aanvraag.
Uitzonderingen
De opgegeven waarde voor een setbewerking is een negatief getal kleiner dan -1.
Voorbeelden
In het volgende codevoorbeeld wordt de waarde van deze eigenschap ingesteld.
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
Opmerkingen
Caution
WebRequest, HttpWebRequest, ServicePointen WebClient zijn verouderd en u moet ze niet gebruiken voor nieuwe ontwikkeling. Gebruik in plaats daarvan HttpClient.
U kunt deze eigenschap gebruiken om ervoor te zorgen dat de actieve verbindingen van een ServicePoint object niet voor onbepaalde tijd open blijven. Deze eigenschap is bedoeld voor scenario's waarin verbindingen moeten worden verwijderd en periodiek moeten worden hersteld, zoals taakverdelingsscenario's.
KeepAlive Wanneer een aanvraag wordt true aangevraagd, stelt de MaxIdleTime eigenschap standaard de time-out in voor het sluiten ServicePoint van verbindingen vanwege inactiviteit. Als de ServicePoint actieve verbindingen actief zijn, MaxIdleTime heeft dit geen effect en blijven de verbindingen voor onbepaalde tijd open.
Wanneer de ConnectionLeaseTimeout eigenschap is ingesteld op een andere waarde dan -1 en nadat de opgegeven tijd is verstreken, wordt een actieve ServicePoint verbinding gesloten na het uitvoeren van een aanvraag door in die aanvraag in te false stellenKeepAlive.
Het instellen van deze waarde is van invloed op alle verbindingen die worden beheerd door het ServicePoint object.
Note
Sinds .NET 9 wordt deze eigenschap toegewezen aan SocketsHttpHandler.PooledConnectionLifetime. Handlers worden echter niet opnieuw gebruikt tussen aanvragen, zodat deze geen zinvolle impact hebben.