Comparteix a través de


HttpClientBuilderExtensions.SetHandlerLifetime Método

Definición

Establece el período de tiempo que se puede volver a usar una instancia de HttpMessageHandler. Cada cliente con nombre puede tener configurado su propio valor de duración de controlador. El valor predeterminado es de dos minutos. Establezca la duración en InfiniteTimeSpan para deshabilitar la expiración del controlador.

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

Parámetros

handlerLifetime
TimeSpan

Devoluciones

Comentarios

La implementación predeterminada de IHttpClientFactory agrupará las HttpMessageHandler instancias creadas por la factoría para reducir el consumo de recursos. Esta configuración configura la cantidad de tiempo que se puede agrupar un controlador antes de que se programe para la eliminación del grupo y la eliminación.

La agrupación de controladores es conveniente porque cada controlador suele administrar sus propias conexiones HTTP subyacentes. Crear más controladores de lo necesario puede provocar retrasos en la conexión. Algunos controladores también mantienen abiertas las conexiones indefinidamente, lo que puede impedir que el controlador reaccione a los cambios de DNS. El valor de handlerLifetime debe elegirse con una comprensión del requisito de la aplicación para responder a los cambios en el entorno de red.

La expiración de un controlador no eliminará inmediatamente el controlador. Un controlador expirado se coloca en un grupo independiente que se procesa a intervalos para eliminar controladores solo cuando se vuelven inaccesibles. El uso de instancias de larga duración HttpClient impedirá que el subyacente HttpMessageHandler se elimine hasta que todas las referencias se recopilen como elementos no utilizados.

Se aplica a