ServicePoint.ConnectionLeaseTimeout Eigenschap

Definitie

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.

Van toepassing op

Zie ook