ServicePoint.ConnectionLeaseTimeout 속성

정의

활성 ServicePoint 연결이 닫힌 후의 시간(밀리초)을 가져오거나 설정합니다.

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

속성 값

활성 Int32 연결이 열린 상태로 유지되는 시간(밀리초)을 지정하는 A ServicePoint 입니다. 기본값은 -1이며 활성 ServicePoint 연결을 무기한으로 연결할 수 있습니다. 요청을 처리한 후 연결을 강제로 ServicePoint 닫도록 하려면 이 속성을 0으로 설정합니다.

예외

set 연산에 지정된 값은 -1보다 작은 음수입니다.

예제

다음 코드 예제에서는이 속성의 값을 설정 합니다.

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

설명

Caution

WebRequest, HttpWebRequest, ServicePointWebClient 사용되지 않으므로 새 개발에 사용하면 안 됩니다. HttpClient를 대신 사용하세요.

개체의 활성 연결이 ServicePoint 무기한으로 열려 있지 않도록 하려면 이 속성을 사용할 수 있습니다. 이 속성은 부하 분산 시나리오와 같이 연결을 정기적으로 삭제하고 다시 설정해야 하는 시나리오를 위한 것입니다.

기본적으로 요청 KeepAlive 의 경우 true 속성은 MaxIdleTime 비활성으로 인해 연결을 닫 ServicePoint 기 위한 제한 시간을 설정합니다. 활성 연결 ServicePointMaxIdleTime 있는 경우 아무런 효과가 없으며 연결은 무기한으로 열려 있습니다.

속성이 ConnectionLeaseTimeout -1이 아닌 값으로 설정되고 지정된 시간이 경과한 후 해당 요청으로 설정 ServicePointKeepAlive 하여 요청을 서비스한 후 활성 false 연결이 닫힙니다.

이 값을 설정하면 개체에서 관리하는 모든 연결에 영향을 줍니다 ServicePoint .

메모

.NET 9부터 이 속성은 .에 매핑됩니다 SocketsHttpHandler.PooledConnectionLifetime. 그러나 처리기는 요청 간에 재사용되지 않으므로 의미 있는 영향을 주지 않습니다.

적용 대상

추가 정보