HttpClientBuilderExtensions.SetHandlerLifetime Methode

Definition

Legt die Zeitspanne fest, für die eine HttpMessageHandler-Klasse wiederverwendet werden kann. Für jeden benannten Client kann ein eigener Wert für die Lebensdauer des Handlers konfiguriert werden. Der Standardwert ist 2 Minuten. Legen Sie die Lebensdauer auf InfiniteTimeSpan fest, um das Ablaufen des Handlers zu deaktivieren.

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

Parameter

handlerLifetime
TimeSpan

Gibt zurück

Hinweise

Bei der Standardimplementierung von IHttpClientFactory werden die HttpMessageHandler von der Factory erstellten Instanzen zusammengefasst, um den Ressourcenverbrauch zu reduzieren. Mit dieser Einstellung wird die Zeitspanne konfiguriert, die ein Handler in einem Pool zusammengefasst werden kann, bevor die Entfernung aus dem Pool und die Entsorgung geplant wird.

Das Zusammenlegen von Handlern ist wünschenswert, da jeder Handler in der Regel über seine eigenen HTTP-Verbindungen verfügt. Das Erstellen von mehr Handlern als notwendig kann zu Verzögerungen bei der Verbindung führen. Einige Handler halten Verbindungen auch unbegrenzt offen, was verhindern kann, dass der Handler auf DNS-Änderungen reagiert. Der Wert von handlerLifetime sollte mit einem Verständnis der Anforderungen der Anwendung ausgewählt werden, um auf Änderungen in der Netzwerkumgebung zu reagieren.

Beim Ablauf eines Handlers wird der Handler nicht sofort verworfen. Ein abgelaufener Handler wird in einem separaten Pool platziert, der in Intervallen verarbeitet wird, um Handler nur dann zu verwerfen, wenn sie nicht mehr erreichbar sind. Durch die Verwendung langlebiger HttpClient Instanzen wird verhindert, dass die zugrunde liegende HttpMessageHandler gelöscht wird, bis alle Verweise garbage-collection sind.

Gilt für: