返回题库高级 .NET 刷题ASP.NET Core 选择题 · 第 39 / 50 篇

ASP.NET Core 试题 39:HttpClientFactory 与弹性

0761 在 处理器池 的框架契约中,哪项是应直接依赖的主规则?

难度: 基础

  • A. Factory 为每次请求创建全新 TCP 连接且不复用
  • B. IHttpClientFactory 创建短生命周期 HttpClient,同时池化底层 HttpMessageHandler
  • C. HandlerLifetime 需兼顾连接复用和 DNS 变化,不能每请求 new 并立刻释放处理器
  • D. 观察到“高并发下端口耗尽”即可把一次现象当成完整框架契约。
查看答案与解析

正确答案B

正确答案直接描述 处理器池 的主规则:IHttpClientFactory 创建短生命周期 HttpClient,同时池化底层 HttpMessageHandler。选项“HandlerLifetime 需兼顾连接复用和 DNS 变化,不能每请求 new 并立刻释放处理器”是使用规则时要验证的边界,不是规则本身;“Factory 为每次请求创建全新 TCP 连接且不复用”则是会导致错误实现的典型误区。场景只能提供线索,不能替代框架契约。

0762 高并发下端口耗尽。排查时哪项动作最合理?

难度: 进阶

  • A. 直接按“Factory 为每次请求创建全新 TCP 连接且不复用”定性,不再检查配置、身份或运行时证据。
  • B. 只增加重试次数或机器资源,暂不核对“HandlerLifetime 需兼顾连接复用和 DNS 变化,不能每请求 new 并立刻释放处理器”。
  • C. 先验证“HandlerLifetime 需兼顾连接复用和 DNS 变化,不能每请求 new 并立刻释放处理器”,再依据“IHttpClientFactory 创建短生命周期 HttpClient,同时池化底层 HttpMessageHandler”判断实现是否符合契约。
  • D. 以一次成功请求作为结论,不再确认“IHttpClientFactory 创建短生命周期 HttpClient,同时池化底层 HttpMessageHandler”是否成立。
查看答案与解析

正确答案C

场景“高并发下端口耗尽”指向 处理器池,但症状本身不能证明根因。正确排查应先确认边界“HandlerLifetime 需兼顾连接复用和 DNS 变化,不能每请求 new 并立刻释放处理器”,再用主规则“IHttpClientFactory 创建短生命周期 HttpClient,同时池化底层 HttpMessageHandler”解释证据。直接采用误区“Factory 为每次请求创建全新 TCP 连接且不复用”、只扩容或依赖一次成功都会掩盖真实配置和请求路径。

0763 关于 处理器池,以下哪项说法不成立?

难度: 实战

  • A. IHttpClientFactory 创建短生命周期 HttpClient,同时池化底层 HttpMessageHandler
  • B. HandlerLifetime 需兼顾连接复用和 DNS 变化,不能每请求 new 并立刻释放处理器
  • C. 出现“高并发下端口耗尽”时,应收集证据并同时核对主规则与适用边界。
  • D. Factory 为每次请求创建全新 TCP 连接且不复用
查看答案与解析

正确答案D

题目要求选出不成立的说法,答案“Factory 为每次请求创建全新 TCP 连接且不复用”正是 处理器池 的典型误区。其余三项分别给出了主规则“IHttpClientFactory 创建短生命周期 HttpClient,同时池化底层 HttpMessageHandler”、适用边界“HandlerLifetime 需兼顾连接复用和 DNS 变化,不能每请求 new 并立刻释放处理器”以及面向场景的正确取证方式,不能因为题干使用否定问法而反选这些有效结论。

0764 针对“高并发下端口耗尽”进行上线评审,哪项决策依据最完整?

难度: 实战

  • A. 按“IHttpClientFactory 创建短生命周期 HttpClient,同时池化底层 HttpMessageHandler”修正实现,并用测试或遥测验证“HandlerLifetime 需兼顾连接复用和 DNS 变化,不能每请求 new 并立刻释放处理器”。
  • B. 按“Factory 为每次请求创建全新 TCP 连接且不复用”修改实现,并把一次请求成功作为验收结果。
  • C. 按“IHttpClientFactory 创建短生命周期 HttpClient,同时池化底层 HttpMessageHandler”修改代码后直接上线,不验证“HandlerLifetime 需兼顾连接复用和 DNS 变化,不能每请求 new 并立刻释放处理器”。
  • D. 只验证“HandlerLifetime 需兼顾连接复用和 DNS 变化,不能每请求 new 并立刻释放处理器”,但实现仍继续依赖“Factory 为每次请求创建全新 TCP 连接且不复用”。
查看答案与解析

正确答案A

完整决策同时覆盖规则与验证:IHttpClientFactory 创建短生命周期 HttpClient,同时池化底层 HttpMessageHandler;并确认 HandlerLifetime 需兼顾连接复用和 DNS 变化,不能每请求 new 并立刻释放处理器。继续接受“Factory 为每次请求创建全新 TCP 连接且不复用”会让评审依据失真;只改代码不验证边界,或只检查边界却沿用误区,都不足以判断“高并发下端口耗尽”这一生产场景能否安全上线。

0765 在 Typed Client 生命周期 的框架契约中,哪项是应直接依赖的主规则?

难度: 基础

  • A. Typed Client 被单例捕获后每个请求仍由 DI 自动替换字段
  • B. 把 Typed Client 捕获进 Singleton 可能阻止按预期重新解析和更新处理器配置
  • C. Typed Client 通常注册为 Transient,并封装特定下游配置
  • D. 观察到“DNS 切换后单例长期连接旧地址”即可把一次现象当成完整框架契约。
查看答案与解析

正确答案C

正确答案直接描述 Typed Client 生命周期 的主规则:Typed Client 通常注册为 Transient,并封装特定下游配置。选项“把 Typed Client 捕获进 Singleton 可能阻止按预期重新解析和更新处理器配置”是使用规则时要验证的边界,不是规则本身;“Typed Client 被单例捕获后每个请求仍由 DI 自动替换字段”则是会导致错误实现的典型误区。场景只能提供线索,不能替代框架契约。

0766 DNS 切换后单例长期连接旧地址。排查时哪项动作最合理?

难度: 进阶

  • A. 直接按“Typed Client 被单例捕获后每个请求仍由 DI 自动替换字段”定性,不再检查配置、身份或运行时证据。
  • B. 先验证“把 Typed Client 捕获进 Singleton 可能阻止按预期重新解析和更新处理器配置”,再依据“Typed Client 通常注册为 Transient,并封装特定下游配置”判断实现是否符合契约。
  • C. 只增加重试次数或机器资源,暂不核对“把 Typed Client 捕获进 Singleton 可能阻止按预期重新解析和更新处理器配置”。
  • D. 以一次成功请求作为结论,不再确认“Typed Client 通常注册为 Transient,并封装特定下游配置”是否成立。
查看答案与解析

正确答案B

场景“DNS 切换后单例长期连接旧地址”指向 Typed Client 生命周期,但症状本身不能证明根因。正确排查应先确认边界“把 Typed Client 捕获进 Singleton 可能阻止按预期重新解析和更新处理器配置”,再用主规则“Typed Client 通常注册为 Transient,并封装特定下游配置”解释证据。直接采用误区“Typed Client 被单例捕获后每个请求仍由 DI 自动替换字段”、只扩容或依赖一次成功都会掩盖真实配置和请求路径。

0767 关于 Typed Client 生命周期,以下哪项说法不成立?

难度: 实战

  • A. Typed Client 被单例捕获后每个请求仍由 DI 自动替换字段
  • B. Typed Client 通常注册为 Transient,并封装特定下游配置
  • C. 把 Typed Client 捕获进 Singleton 可能阻止按预期重新解析和更新处理器配置
  • D. 出现“DNS 切换后单例长期连接旧地址”时,应收集证据并同时核对主规则与适用边界。
查看答案与解析

正确答案A

题目要求选出不成立的说法,答案“Typed Client 被单例捕获后每个请求仍由 DI 自动替换字段”正是 Typed Client 生命周期 的典型误区。其余三项分别给出了主规则“Typed Client 通常注册为 Transient,并封装特定下游配置”、适用边界“把 Typed Client 捕获进 Singleton 可能阻止按预期重新解析和更新处理器配置”以及面向场景的正确取证方式,不能因为题干使用否定问法而反选这些有效结论。

0768 针对“DNS 切换后单例长期连接旧地址”进行上线评审,哪项决策依据最完整?

难度: 实战

  • A. 按“Typed Client 被单例捕获后每个请求仍由 DI 自动替换字段”修改实现,并把一次请求成功作为验收结果。
  • B. 按“Typed Client 通常注册为 Transient,并封装特定下游配置”修改代码后直接上线,不验证“把 Typed Client 捕获进 Singleton 可能阻止按预期重新解析和更新处理器配置”。
  • C. 只验证“把 Typed Client 捕获进 Singleton 可能阻止按预期重新解析和更新处理器配置”,但实现仍继续依赖“Typed Client 被单例捕获后每个请求仍由 DI 自动替换字段”。
  • D. 按“Typed Client 通常注册为 Transient,并封装特定下游配置”修正实现,并用测试或遥测验证“把 Typed Client 捕获进 Singleton 可能阻止按预期重新解析和更新处理器配置”。
查看答案与解析

正确答案D

完整决策同时覆盖规则与验证:Typed Client 通常注册为 Transient,并封装特定下游配置;并确认 把 Typed Client 捕获进 Singleton 可能阻止按预期重新解析和更新处理器配置。继续接受“Typed Client 被单例捕获后每个请求仍由 DI 自动替换字段”会让评审依据失真;只改代码不验证边界,或只检查边界却沿用误区,都不足以判断“DNS 切换后单例长期连接旧地址”这一生产场景能否安全上线。

0769 在 重试策略 的框架契约中,哪项是应直接依赖的主规则?

难度: 基础

  • A. 所有 5xx 都应无限立即重试直到成功
  • B. 非幂等写请求可能重复产生副作用,应使用幂等键或仅重试安全条件
  • C. 观察到“下游故障时重试放大流量形成雪崩”即可把一次现象当成完整框架契约。
  • D. 重试适合瞬态失败,但次数、退避、抖动和总超时都需限制
查看答案与解析

正确答案D

正确答案直接描述 重试策略 的主规则:重试适合瞬态失败,但次数、退避、抖动和总超时都需限制。选项“非幂等写请求可能重复产生副作用,应使用幂等键或仅重试安全条件”是使用规则时要验证的边界,不是规则本身;“所有 5xx 都应无限立即重试直到成功”则是会导致错误实现的典型误区。场景只能提供线索,不能替代框架契约。

0770 下游故障时重试放大流量形成雪崩。排查时哪项动作最合理?

难度: 进阶

  • A. 先验证“非幂等写请求可能重复产生副作用,应使用幂等键或仅重试安全条件”,再依据“重试适合瞬态失败,但次数、退避、抖动和总超时都需限制”判断实现是否符合契约。
  • B. 直接按“所有 5xx 都应无限立即重试直到成功”定性,不再检查配置、身份或运行时证据。
  • C. 只增加重试次数或机器资源,暂不核对“非幂等写请求可能重复产生副作用,应使用幂等键或仅重试安全条件”。
  • D. 以一次成功请求作为结论,不再确认“重试适合瞬态失败,但次数、退避、抖动和总超时都需限制”是否成立。
查看答案与解析

正确答案A

场景“下游故障时重试放大流量形成雪崩”指向 重试策略,但症状本身不能证明根因。正确排查应先确认边界“非幂等写请求可能重复产生副作用,应使用幂等键或仅重试安全条件”,再用主规则“重试适合瞬态失败,但次数、退避、抖动和总超时都需限制”解释证据。直接采用误区“所有 5xx 都应无限立即重试直到成功”、只扩容或依赖一次成功都会掩盖真实配置和请求路径。

0771 关于 重试策略,以下哪项说法不成立?

难度: 实战

  • A. 重试适合瞬态失败,但次数、退避、抖动和总超时都需限制
  • B. 非幂等写请求可能重复产生副作用,应使用幂等键或仅重试安全条件
  • C. 所有 5xx 都应无限立即重试直到成功
  • D. 出现“下游故障时重试放大流量形成雪崩”时,应收集证据并同时核对主规则与适用边界。
查看答案与解析

正确答案C

题目要求选出不成立的说法,答案“所有 5xx 都应无限立即重试直到成功”正是 重试策略 的典型误区。其余三项分别给出了主规则“重试适合瞬态失败,但次数、退避、抖动和总超时都需限制”、适用边界“非幂等写请求可能重复产生副作用,应使用幂等键或仅重试安全条件”以及面向场景的正确取证方式,不能因为题干使用否定问法而反选这些有效结论。

0772 针对“下游故障时重试放大流量形成雪崩”进行上线评审,哪项决策依据最完整?

难度: 实战

  • A. 按“所有 5xx 都应无限立即重试直到成功”修改实现,并把一次请求成功作为验收结果。
  • B. 按“重试适合瞬态失败,但次数、退避、抖动和总超时都需限制”修正实现,并用测试或遥测验证“非幂等写请求可能重复产生副作用,应使用幂等键或仅重试安全条件”。
  • C. 按“重试适合瞬态失败,但次数、退避、抖动和总超时都需限制”修改代码后直接上线,不验证“非幂等写请求可能重复产生副作用,应使用幂等键或仅重试安全条件”。
  • D. 只验证“非幂等写请求可能重复产生副作用,应使用幂等键或仅重试安全条件”,但实现仍继续依赖“所有 5xx 都应无限立即重试直到成功”。
查看答案与解析

正确答案B

完整决策同时覆盖规则与验证:重试适合瞬态失败,但次数、退避、抖动和总超时都需限制;并确认 非幂等写请求可能重复产生副作用,应使用幂等键或仅重试安全条件。继续接受“所有 5xx 都应无限立即重试直到成功”会让评审依据失真;只改代码不验证边界,或只检查边界却沿用误区,都不足以判断“下游故障时重试放大流量形成雪崩”这一生产场景能否安全上线。

0773 在 HTTP 请求超时与取消 的框架契约中,哪项是应直接依赖的主规则?

难度: 基础

  • A. HttpClient.Timeout、策略超时和调用 CancellationToken 可能共同终止请求
  • B. 设置 HttpClient.Timeout 后不再需要传请求取消令牌
  • C. 要区分调用方取消、超时和网络失败,并保证响应与流正确释放
  • D. 观察到“客户端断开后下游调用仍继续到全局超时”即可把一次现象当成完整框架契约。
查看答案与解析

正确答案A

正确答案直接描述 HTTP 请求超时与取消 的主规则:HttpClient.Timeout、策略超时和调用 CancellationToken 可能共同终止请求。选项“要区分调用方取消、超时和网络失败,并保证响应与流正确释放”是使用规则时要验证的边界,不是规则本身;“设置 HttpClient.Timeout 后不再需要传请求取消令牌”则是会导致错误实现的典型误区。场景只能提供线索,不能替代框架契约。

0774 客户端断开后下游调用仍继续到全局超时。排查时哪项动作最合理?

难度: 进阶

  • A. 直接按“设置 HttpClient.Timeout 后不再需要传请求取消令牌”定性,不再检查配置、身份或运行时证据。
  • B. 先验证“要区分调用方取消、超时和网络失败,并保证响应与流正确释放”,再依据“HttpClient.Timeout、策略超时和调用 CancellationToken 可能共同终止请求”判断实现是否符合契约。
  • C. 只增加重试次数或机器资源,暂不核对“要区分调用方取消、超时和网络失败,并保证响应与流正确释放”。
  • D. 以一次成功请求作为结论,不再确认“HttpClient.Timeout、策略超时和调用 CancellationToken 可能共同终止请求”是否成立。
查看答案与解析

正确答案B

场景“客户端断开后下游调用仍继续到全局超时”指向 HTTP 请求超时与取消,但症状本身不能证明根因。正确排查应先确认边界“要区分调用方取消、超时和网络失败,并保证响应与流正确释放”,再用主规则“HttpClient.Timeout、策略超时和调用 CancellationToken 可能共同终止请求”解释证据。直接采用误区“设置 HttpClient.Timeout 后不再需要传请求取消令牌”、只扩容或依赖一次成功都会掩盖真实配置和请求路径。

0775 关于 HTTP 请求超时与取消,以下哪项说法不成立?

难度: 实战

  • A. HttpClient.Timeout、策略超时和调用 CancellationToken 可能共同终止请求
  • B. 要区分调用方取消、超时和网络失败,并保证响应与流正确释放
  • C. 设置 HttpClient.Timeout 后不再需要传请求取消令牌
  • D. 出现“客户端断开后下游调用仍继续到全局超时”时,应收集证据并同时核对主规则与适用边界。
查看答案与解析

正确答案C

题目要求选出不成立的说法,答案“设置 HttpClient.Timeout 后不再需要传请求取消令牌”正是 HTTP 请求超时与取消 的典型误区。其余三项分别给出了主规则“HttpClient.Timeout、策略超时和调用 CancellationToken 可能共同终止请求”、适用边界“要区分调用方取消、超时和网络失败,并保证响应与流正确释放”以及面向场景的正确取证方式,不能因为题干使用否定问法而反选这些有效结论。

0776 针对“客户端断开后下游调用仍继续到全局超时”进行上线评审,哪项决策依据最完整?

难度: 实战

  • A. 按“设置 HttpClient.Timeout 后不再需要传请求取消令牌”修改实现,并把一次请求成功作为验收结果。
  • B. 按“HttpClient.Timeout、策略超时和调用 CancellationToken 可能共同终止请求”修改代码后直接上线,不验证“要区分调用方取消、超时和网络失败,并保证响应与流正确释放”。
  • C. 只验证“要区分调用方取消、超时和网络失败,并保证响应与流正确释放”,但实现仍继续依赖“设置 HttpClient.Timeout 后不再需要传请求取消令牌”。
  • D. 按“HttpClient.Timeout、策略超时和调用 CancellationToken 可能共同终止请求”修正实现,并用测试或遥测验证“要区分调用方取消、超时和网络失败,并保证响应与流正确释放”。
查看答案与解析

正确答案D

完整决策同时覆盖规则与验证:HttpClient.Timeout、策略超时和调用 CancellationToken 可能共同终止请求;并确认 要区分调用方取消、超时和网络失败,并保证响应与流正确释放。继续接受“设置 HttpClient.Timeout 后不再需要传请求取消令牌”会让评审依据失真;只改代码不验证边界,或只检查边界却沿用误区,都不足以判断“客户端断开后下游调用仍继续到全局超时”这一生产场景能否安全上线。

0777 在 请求头与上下文 的框架契约中,哪项是应直接依赖的主规则?

难度: 基础

  • A. DelegatingHandler 可添加认证、追踪等横切逻辑
  • B. DelegatingHandler 每次 HTTP 请求都会创建新实例且绝不复用
  • C. Handler 可能被池化跨请求复用,不能在实例字段保存某次请求的用户状态
  • D. 观察到“租户令牌被错误复用到另一请求”即可把一次现象当成完整框架契约。
查看答案与解析

正确答案A

正确答案直接描述 请求头与上下文 的主规则:DelegatingHandler 可添加认证、追踪等横切逻辑。选项“Handler 可能被池化跨请求复用,不能在实例字段保存某次请求的用户状态”是使用规则时要验证的边界,不是规则本身;“DelegatingHandler 每次 HTTP 请求都会创建新实例且绝不复用”则是会导致错误实现的典型误区。场景只能提供线索,不能替代框架契约。

0778 租户令牌被错误复用到另一请求。排查时哪项动作最合理?

难度: 进阶

  • A. 直接按“DelegatingHandler 每次 HTTP 请求都会创建新实例且绝不复用”定性,不再检查配置、身份或运行时证据。
  • B. 只增加重试次数或机器资源,暂不核对“Handler 可能被池化跨请求复用,不能在实例字段保存某次请求的用户状态”。
  • C. 以一次成功请求作为结论,不再确认“DelegatingHandler 可添加认证、追踪等横切逻辑”是否成立。
  • D. 先验证“Handler 可能被池化跨请求复用,不能在实例字段保存某次请求的用户状态”,再依据“DelegatingHandler 可添加认证、追踪等横切逻辑”判断实现是否符合契约。
查看答案与解析

正确答案D

场景“租户令牌被错误复用到另一请求”指向 请求头与上下文,但症状本身不能证明根因。正确排查应先确认边界“Handler 可能被池化跨请求复用,不能在实例字段保存某次请求的用户状态”,再用主规则“DelegatingHandler 可添加认证、追踪等横切逻辑”解释证据。直接采用误区“DelegatingHandler 每次 HTTP 请求都会创建新实例且绝不复用”、只扩容或依赖一次成功都会掩盖真实配置和请求路径。

0779 关于 请求头与上下文,以下哪项说法不成立?

难度: 实战

  • A. DelegatingHandler 可添加认证、追踪等横切逻辑
  • B. Handler 可能被池化跨请求复用,不能在实例字段保存某次请求的用户状态
  • C. DelegatingHandler 每次 HTTP 请求都会创建新实例且绝不复用
  • D. 出现“租户令牌被错误复用到另一请求”时,应收集证据并同时核对主规则与适用边界。
查看答案与解析

正确答案C

题目要求选出不成立的说法,答案“DelegatingHandler 每次 HTTP 请求都会创建新实例且绝不复用”正是 请求头与上下文 的典型误区。其余三项分别给出了主规则“DelegatingHandler 可添加认证、追踪等横切逻辑”、适用边界“Handler 可能被池化跨请求复用,不能在实例字段保存某次请求的用户状态”以及面向场景的正确取证方式,不能因为题干使用否定问法而反选这些有效结论。

0780 针对“租户令牌被错误复用到另一请求”进行上线评审,哪项决策依据最完整?

难度: 实战

  • A. 按“DelegatingHandler 每次 HTTP 请求都会创建新实例且绝不复用”修改实现,并把一次请求成功作为验收结果。
  • B. 按“DelegatingHandler 可添加认证、追踪等横切逻辑”修正实现,并用测试或遥测验证“Handler 可能被池化跨请求复用,不能在实例字段保存某次请求的用户状态”。
  • C. 按“DelegatingHandler 可添加认证、追踪等横切逻辑”修改代码后直接上线,不验证“Handler 可能被池化跨请求复用,不能在实例字段保存某次请求的用户状态”。
  • D. 只验证“Handler 可能被池化跨请求复用,不能在实例字段保存某次请求的用户状态”,但实现仍继续依赖“DelegatingHandler 每次 HTTP 请求都会创建新实例且绝不复用”。
查看答案与解析

正确答案B

完整决策同时覆盖规则与验证:DelegatingHandler 可添加认证、追踪等横切逻辑;并确认 Handler 可能被池化跨请求复用,不能在实例字段保存某次请求的用户状态。继续接受“DelegatingHandler 每次 HTTP 请求都会创建新实例且绝不复用”会让评审依据失真;只改代码不验证边界,或只检查边界却沿用误区,都不足以判断“租户令牌被错误复用到另一请求”这一生产场景能否安全上线。

官方资料

当前分类

ASP.NET Core 选择题

查看全部分类 →
  1. 37ASP.NET Core 试题 37:健康检查20 题
  2. 38ASP.NET Core 试题 38:后台服务20 题
  3. 39ASP.NET Core 试题 39:HttpClientFactory 与弹性20 题
  4. 40ASP.NET Core 试题 40:SignalR 实时通信20 题
  5. 41ASP.NET Core 试题 41:gRPC 服务20 题
ESC

输入关键词开始搜索