HttpClientBuilderExtensions.SetHandlerLifetime Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Imposta l'intervallo di tempo per cui un'istanza di HttpMessageHandler può essere riutilizzata. Per ogni client nominato è possibile configurare un valore di durata del gestore configurabile. Il valore predefinito è di 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
- builder
- IHttpClientBuilder
- handlerLifetime
- TimeSpan
Valori restituiti
Commenti
L'implementazione predefinita di eseguirà il pool delle IHttpClientFactory istanze create dalla factory per ridurre il HttpMessageHandler consumo di risorse. Questa impostazione consente di configurare la quantità di tempo per cui un gestore può essere inserita in pool prima di essere pianificata per la rimozione dal pool e dall'eliminazione.
Il pooling di gestori è auspicabile perché ogni gestore gestisce in genere le proprie connessioni HTTP sottostanti; la creazione di più gestori del necessario può comportare ritardi di connessione. Alcuni gestori mantengono anche le connessioni aperte a tempo indefinito, impedendo al gestore di reagire alle modifiche DNS. Il valore di handlerLifetime deve essere scelto con una comprensione del requisito dell'applicazione per 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 che viene elaborato a intervalli per eliminare i gestori solo quando diventano non raggiungibili. L'uso di istanze di lunga durata HttpClient impedirà l'eliminazione dell'oggetto sottostante HttpMessageHandler fino a quando tutti i riferimenti non vengono sottoposti a Garbage Collection.