ServicePoint.ConnectionLeaseTimeout Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví počet milisekund, po kterých je aktivní ServicePoint připojení uzavřeno.
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
Hodnota vlastnosti
Hodnota Int32 určující počet milisekund, které aktivní ServicePoint připojení zůstává otevřené. Výchozí hodnota je -1, což umožňuje nepřetržité připojení aktivního ServicePoint připojení. Nastavte tuto vlastnost na hodnotu 0, aby ServicePoint se připojení po provedení žádosti zavřela.
Výjimky
Hodnota zadaná pro operaci sady je záporné číslo menší než -1.
Příklady
Následující příklad kódu nastaví hodnotu této vlastnosti.
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
Poznámky
Caution
WebRequest, HttpWebRequest, ServicePointa WebClient jsou zastaralé a neměli byste je používat pro nový vývoj. Místo toho použijte HttpClient.
Tuto vlastnost můžete použít k zajištění, aby ServicePoint aktivní připojení objektu nezůstávaly otevřené neomezeně dlouho. Tato vlastnost je určená pro scénáře, kdy by se připojení měla pravidelně zahodit a znovu publikovat, například scénáře vyrovnávání zatížení.
Ve výchozím nastavení nastaví KeepAlivetrueMaxIdleTime vlastnost časový limit pro ukončení ServicePoint připojení kvůli nečinnosti. Pokud má ServicePoint aktivní připojení, MaxIdleTime nemá žádný vliv a připojení zůstanou otevřená po neomezenou dobu.
ConnectionLeaseTimeout Pokud je vlastnost nastavena na jinou hodnotu než -1 a po uplynutí zadaného času se aktivní ServicePoint připojení po servisu požadavku zavře nastavením KeepAlive v false tomto požadavku.
Nastavení této hodnoty ovlivní všechna připojení spravovaná objektem ServicePoint .
Note
Vzhledem k tomu, .NET 9, tato vlastnost mapuje na SocketsHttpHandler.PooledConnectionLifetime. Obslužné rutiny se ale mezi požadavky opakovaně nepoužívají, takže nemají žádný smysluplný dopad.