ServicePoint.ConnectionLeaseTimeout Vlastnost

Definice

Získá nebo nastaví počet milisekund, po jejichž uplynutí je aktivní ServicePoint připojení ukonč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

A Int32 určující počet milisekund, po které ServicePoint aktivní připojení zůstane otevřené. Výchozí hodnota je -1, což umožňuje, aby aktivní ServicePoint připojení zůstalo připojené po neomezenou dobu. Nastavením této vlastnosti na hodnotu 0 vynutíte ServicePoint ukončení připojení po vyřízení žádosti.

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.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

Poznámky

Pomocí této vlastnosti můžete zajistit, aby aktivní připojení objektu ServicePoint nezůstala otevřená po neomezenou dobu. Tato vlastnost je určená pro scénáře, kdy by se připojení měla pravidelně ukončovat a obnovovat, například ve scénářích vyrovnávání zatížení.

Pokud se ve výchozím nastavení KeepAlive jedná true o požadavek, MaxIdleTime vlastnost nastaví časový limit pro ukončení ServicePoint připojení z důvodu nečinnosti. ServicePoint Pokud má aktivní připojení, MaxIdleTime nemá žádný účinek a připojení zůstávají otevřená po neomezenou dobu.

ConnectionLeaseTimeout Pokud je vlastnost nastavená na jinou hodnotu než -1 a po uplynutí zadaného času se ServicePoint aktivní připojení ukončí po obsluhování požadavku nastavením KeepAlive na v daném požadavku na false .

Nastavení této hodnoty ovlivní všechna připojení spravovaná objektem ServicePoint .

Platí pro

Viz také