ServicePoint.ConnectionLeaseTimeout 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
활성 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, ServicePoint및 WebClient 사용되지 않으므로 새 개발에 사용하면 안 됩니다.
HttpClient를 대신 사용하세요.
개체의 활성 연결이 ServicePoint 무기한으로 열려 있지 않도록 하려면 이 속성을 사용할 수 있습니다. 이 속성은 부하 분산 시나리오와 같이 연결을 정기적으로 삭제하고 다시 설정해야 하는 시나리오를 위한 것입니다.
기본적으로 요청 KeepAlive 의 경우 true 속성은 MaxIdleTime 비활성으로 인해 연결을 닫 ServicePoint 기 위한 제한 시간을 설정합니다. 활성 연결 ServicePoint 이 MaxIdleTime 있는 경우 아무런 효과가 없으며 연결은 무기한으로 열려 있습니다.
속성이 ConnectionLeaseTimeout -1이 아닌 값으로 설정되고 지정된 시간이 경과한 후 해당 요청으로 설정 ServicePointKeepAlive 하여 요청을 서비스한 후 활성 false 연결이 닫힙니다.
이 값을 설정하면 개체에서 관리하는 모든 연결에 영향을 줍니다 ServicePoint .
메모
.NET 9부터 이 속성은 .에 매핑됩니다 SocketsHttpHandler.PooledConnectionLifetime. 그러나 처리기는 요청 간에 재사용되지 않으므로 의미 있는 영향을 주지 않습니다.