Condividi tramite


HttpClientBuilderExtensions.SetHandlerLifetime Metodo

Definizione

Imposta l'intervallo di tempo per cui un'istanza di HttpMessageHandler può essere riutilizzata. Per ogni client denominato può essere configurato un valore di durata del gestore. Il valore predefinito è due minuti. Impostare la durata su InfiniteTimeSpan per disabilitare la scadenza del gestore.

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

Parametri

handlerLifetime
TimeSpan

Restituisce

Commenti

L'implementazione predefinita di IHttpClientFactory eseguirà il pool delle istanze create dalla factory per ridurre l'utilizzo HttpMessageHandler delle risorse. Questa impostazione consente di configurare la quantità di tempo per cui un gestore può essere inserito in pool prima di essere pianificato per la rimozione dal pool e lo smaltimento.

Il pooling dei gestori è opportuno poiché ogni gestore si occupa in genere di gestire le proprie connessioni HTTP sottostanti. La creazione di un numero superiore di gestori rispetto a quelli necessari può determinare ritardi di connessione. Alcuni gestori mantengono anche le connessioni aperte a tempo indeterminato, impedendo al gestore di reagire alle modifiche DNS. Il valore di handlerLifetime deve essere scelto con una conoscenza del requisito dell'applicazione di rispondere alle modifiche nell'ambiente di rete.

La scadenza di un gestore non eliminerà immediatamente il gestore. Un gestore scaduto viene inserito in un pool separato elaborato a intervalli per eliminare i gestori solo quando diventano non raggiungibili. L'uso di istanze di lunga durata HttpClient impedisce l'eliminazione dell'oggetto sottostante HttpMessageHandler fino a quando tutti i riferimenti non vengono sottoposti a Garbage Collection.

Si applica a