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 específico puede tener configurado su propio valor de duración del 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 deseable, ya que cada controlador normalmente administra sus propias conexiones HTTP subyacentes; la creación de más controladores de los necesarios puede dar lugar a retrasos de 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 se recopilen todas las referencias.

Se aplica a