次の方法で共有


HttpClientBuilderExtensions.SetHandlerLifetime メソッド

定義

HttpMessageHandler を再利用できる時間を設定します。 名前付きの各クライアントには、独自の構成済みハンドラーの有効期間の値を設定できます。 既定値は 2 分です。 ハンドラーの有効期限を無効にするには、有効期間を InfiniteTimeSpan に設定します。

public:
[System::Runtime::CompilerServices::Extension]
 static Microsoft::Extensions::DependencyInjection::IHttpClientBuilder ^ SetHandlerLifetime(Microsoft::Extensions::DependencyInjection::IHttpClientBuilder ^ builder, TimeSpan handlerLifetime);
public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder SetHandlerLifetime (this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, TimeSpan handlerLifetime);
static member SetHandlerLifetime : Microsoft.Extensions.DependencyInjection.IHttpClientBuilder * TimeSpan -> Microsoft.Extensions.DependencyInjection.IHttpClientBuilder
<Extension()>
Public Function SetHandlerLifetime (builder As IHttpClientBuilder, handlerLifetime As TimeSpan) As IHttpClientBuilder

パラメーター

handlerLifetime
TimeSpan

戻り値

注釈

の既定の IHttpClientFactory 実装では、リソース消費を HttpMessageHandler 減らすためにファクトリによって作成されたインスタンスがプールされます。 この設定では、プールからの削除と破棄がスケジュールされるまでにハンドラーをプールできる時間を構成します。

通常各ハンドラーは基になる HTTP 接続を独自に管理しており、必要以上に多くのハンドラーを作成すると接続が遅延する可能性があるため、ハンドラーをプールするのは望ましい方法です。 また、一部のハンドラーでは、接続を無期限に開いたままにしておき、ハンドラーが DNS の変更に反応するのを防ぐことができます。 の値 handlerLifetime は、ネットワーク環境の変化に対応するためのアプリケーションの要件を理解して選択する必要があります。

ハンドラーの有効期限はすぐには破棄されません。 期限切れのハンドラーは、到達不能になった場合にのみハンドラーを破棄するために間隔を置いて処理される別のプールに配置されます。 有効期間 HttpClient の長いインスタンスを使用すると、すべての参照がガベージ コレクションされるまで、基になる HttpMessageHandler インスタンスが破棄されなくなります。

適用対象