ServicePoint.ConnectionLeaseTimeout Eigenschaft

Definition

Ruft die Anzahl von Millisekunden ab, nach der 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

Int32

Ein Int32, der die Anzahl von Millisekunden angibt, die eine aktive ServicePoint-Verbindung geöffnet bleibt. Der Standardwert ist -1 und ermöglicht es, dass eine aktive ServicePoint-Verbindung für eine unbegrenzte Zeitspanne geöffnet bleibt. Legen Sie diese Eigenschaft auf 0 fest, um zu erzwingen, dass ServicePoint-Verbindungen nach der Verarbeitung 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.dll>

using namespace System;
using namespace System::Net;
using namespace System::Net::Sockets;
using namespace System::IO;
using namespace System::Threading;

namespace SystemNetExamples
{
    public ref class ServicePointExample
    {
    public:

        // Pass in the name of the Web page to retrieve.    
        static void PrintResponse(String^ page)
        {

            // Create the request.
            HttpWebRequest^ request;
            Uri^ uri;
            
 

            try
            {
                uri = gcnew Uri(page);
            }
            catch (UriFormatException^ ex) 
            {
                Console::WriteLine(ex->Message);
            }

            request = (HttpWebRequest^) WebRequest::Create(uri); 

            // 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^ streamReader = 
                gcnew StreamReader(responseStream);
            try
            {
                // Display the response.
                Console::WriteLine(streamReader->ReadToEnd());
                responseStream->Close();
                response->Close();
            }
            finally
            {
                streamReader->Close();
            }
        }
    };
}
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

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 regelmäßig wie Lastenausgleichsszenarien neu aufgebaut werden sollen.

Wenn es sich um eine Anforderung handelt, legt die MaxIdleTime Eigenschaft den KeepAlive true Timeout für das Schließen ServicePoint von Verbindungen aufgrund von Inaktivität fest. Wenn die aktiven Verbindungen vorhanden sind, hat kein Effekt, MaxIdleTime und die ServicePoint 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 nach der Wartung einer Anforderung geschlossen wird, indem sie in dieser Anforderung festgelegt false KeepAlive ist.

Das Festlegen dieses Werts wirkt sich auf alle Verbindungen aus, die vom ServicePoint Objekt verwaltet werden.

Gilt für

Siehe auch