HttpClientBuilderExtensions.SetHandlerLifetime 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
设置可重复使用 HttpMessageHandler 实例的时长。 每个已命名的客户端都可自行配置处理程序生存期值。 默认值为 2 分钟。 将生存期设置为 InfiniteTimeSpan 可禁用处理程序到期。
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
参数
- builder
- IHttpClientBuilder
- handlerLifetime
- TimeSpan
返回
注解
的默认实现 IHttpClientFactory 将池化 HttpMessageHandler 工厂创建的实例,以减少资源消耗。 此设置配置处理程序在计划从池中删除和处置之前可以共用处理程序的时间量。
由于每个处理程序通常都管理自己的基础 HTTP 连接,所以有必要汇集处理程序;创建的处理程序数量如果多于必需的数量,则可能导致连接延迟。 某些处理程序还会无限期地使连接保持打开状态,这可能会阻止处理程序对 DNS 更改做出反应。 选择 的值 handlerLifetime
时,应了解应用程序对网络环境中的更改做出响应的要求。
处理程序过期不会立即释放处理程序。 过期的处理程序放置在单独的池中,该池将每隔一段时间进行处理,以便仅在处理程序无法访问时才释放处理程序。 使用生存期 HttpClient 较长的实例将阻止释放基础 HttpMessageHandler ,直到对所有引用进行垃圾回收。