HttpClientBuilderExtensions.SetHandlerLifetime Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- builder
- IHttpClientBuilder
- 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.