返回题库高级 .NET 刷题ASP.NET Core 生产实践选择题 · 第 6 / 8 篇

ASP.NET Core 生产实践试题 06:ThreadPool 饥饿与同步阻塞

101 关于sync-over-async,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. ASP.NET Core 没有 SynchronizationContext,所以同步等待完全安全
  • B. 在请求路径用 Result、Wait 或 GetResult 同步等待异步操作会占用线程并可能引发线程池饥饿
  • C. ASP.NET Core 通常无传统同步上下文,但没有死锁不等于没有吞吐风险
  • D. 只要观察到“低 CPU 下请求延迟持续升高”,就能把这次现象视为所有环境中的固定行为。
查看答案与解析

正确答案B

正确项给出了sync-over-async可直接依赖的规则:“在请求路径用 Result、Wait 或 GetResult 同步等待异步操作会占用线程并可能引发线程池饥饿”。“ASP.NET Core 通常无传统同步上下文,但没有死锁不等于没有吞吐风险”是应用规则前必须确认的边界,不是规则本身;“ASP.NET Core 没有 SynchronizationContext,所以同步等待完全安全”则把常见现象或实现细节扩大成了平台保证。场景“低 CPU 下请求延迟持续升高”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

102 生产环境出现“低 CPU 下请求延迟持续升高”时,针对sync-over-async应如何排查?

难度: 进阶

  • A. 直接采用“ASP.NET Core 没有 SynchronizationContext,所以同步等待完全安全”解释现象,不再收集目标进程和发布配置证据。
  • B. 只增加机器资源或重启进程,以一次恢复结果代替对“ASP.NET Core 通常无传统同步上下文,但没有死锁不等于没有吞吐风险”的验证。
  • C. 先验证“ASP.NET Core 通常无传统同步上下文,但没有死锁不等于没有吞吐风险”,再使用运行时指标、日志或最小复现检查“在请求路径用 Result、Wait 或 GetResult 同步等待异步操作会占用线程并可能引发线程池饥饿”是否成立。
  • D. 只检查代码是否能够编译,通过后便认定“在请求路径用 Result、Wait 或 GetResult 同步等待异步操作会占用线程并可能引发线程池饥饿”在当前部署中必然成立。
查看答案与解析

正确答案C

“低 CPU 下请求延迟持续升高”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“ASP.NET Core 通常无传统同步上下文,但没有死锁不等于没有吞吐风险”,再以“在请求路径用 Result、Wait 或 GetResult 同步等待异步操作会占用线程并可能引发线程池饥饿”组织证据。采用误区“ASP.NET Core 没有 SynchronizationContext,所以同步等待完全安全”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

103 评审sync-over-async相关实现时,以下哪项判断不成立?

难度: 实战

  • A. 在请求路径用 Result、Wait 或 GetResult 同步等待异步操作会占用线程并可能引发线程池饥饿
  • B. ASP.NET Core 通常无传统同步上下文,但没有死锁不等于没有吞吐风险
  • C. 遇到“低 CPU 下请求延迟持续升高”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
  • D. ASP.NET Core 没有 SynchronizationContext,所以同步等待完全安全
查看答案与解析

正确答案D

题目要求找出不成立的判断,“ASP.NET Core 没有 SynchronizationContext,所以同步等待完全安全”正是sync-over-async的典型误区。主规则“在请求路径用 Result、Wait 或 GetResult 同步等待异步操作会占用线程并可能引发线程池饥饿”描述了实现应依赖的契约,边界“ASP.NET Core 通常无传统同步上下文,但没有死锁不等于没有吞吐风险”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

104 准备上线涉及sync-over-async的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“在请求路径用 Result、Wait 或 GetResult 同步等待异步操作会占用线程并可能引发线程池饥饿”实现,在“ASP.NET Core 通常无传统同步上下文,但没有死锁不等于没有吞吐风险”成立的环境中验证,并为“低 CPU 下请求延迟持续升高”保留可观测证据和回退条件。
  • B. 依据“ASP.NET Core 没有 SynchronizationContext,所以同步等待完全安全”完成修改,只要本地运行一次成功就立即发布。
  • C. 按照“在请求路径用 Result、Wait 或 GetResult 同步等待异步操作会占用线程并可能引发线程池饥饿”修改代码,但不核对“ASP.NET Core 通常无传统同步上下文,但没有死锁不等于没有吞吐风险”或目标发布模式。
  • D. 只验证“ASP.NET Core 通常无传统同步上下文,但没有死锁不等于没有吞吐风险”,实现仍继续依赖“ASP.NET Core 没有 SynchronizationContext,所以同步等待完全安全”这一未经证明的假设。
查看答案与解析

正确答案A

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“在请求路径用 Result、Wait 或 GetResult 同步等待异步操作会占用线程并可能引发线程池饥饿”,部署环境满足“ASP.NET Core 通常无传统同步上下文,但没有死锁不等于没有吞吐风险”,并能在“低 CPU 下请求延迟持续升高”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

105 关于阻塞检测,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. CPU 未满即可排除线程池饥饿
  • B. 必须结合 trace 或 dump 查看阻塞栈,单一线程数不能直接定根因
  • C. 线程池线程数快速增长、队列积压和完成率下降是饥饿的重要组合信号
  • D. 只要观察到“大量线程停在 Task.Wait”,就能把这次现象视为所有环境中的固定行为。
查看答案与解析

正确答案C

正确项给出了阻塞检测可直接依赖的规则:“线程池线程数快速增长、队列积压和完成率下降是饥饿的重要组合信号”。“必须结合 trace 或 dump 查看阻塞栈,单一线程数不能直接定根因”是应用规则前必须确认的边界,不是规则本身;“CPU 未满即可排除线程池饥饿”则把常见现象或实现细节扩大成了平台保证。场景“大量线程停在 Task.Wait”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

106 生产环境出现“大量线程停在 Task.Wait”时,针对阻塞检测应如何排查?

难度: 进阶

  • A. 直接采用“CPU 未满即可排除线程池饥饿”解释现象,不再收集目标进程和发布配置证据。
  • B. 只增加机器资源或重启进程,以一次恢复结果代替对“必须结合 trace 或 dump 查看阻塞栈,单一线程数不能直接定根因”的验证。
  • C. 只检查代码是否能够编译,通过后便认定“线程池线程数快速增长、队列积压和完成率下降是饥饿的重要组合信号”在当前部署中必然成立。
  • D. 先验证“必须结合 trace 或 dump 查看阻塞栈,单一线程数不能直接定根因”,再使用运行时指标、日志或最小复现检查“线程池线程数快速增长、队列积压和完成率下降是饥饿的重要组合信号”是否成立。
查看答案与解析

正确答案D

“大量线程停在 Task.Wait”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“必须结合 trace 或 dump 查看阻塞栈,单一线程数不能直接定根因”,再以“线程池线程数快速增长、队列积压和完成率下降是饥饿的重要组合信号”组织证据。采用误区“CPU 未满即可排除线程池饥饿”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

107 评审阻塞检测相关实现时,以下哪项判断不成立?

难度: 实战

  • A. CPU 未满即可排除线程池饥饿
  • B. 线程池线程数快速增长、队列积压和完成率下降是饥饿的重要组合信号
  • C. 必须结合 trace 或 dump 查看阻塞栈,单一线程数不能直接定根因
  • D. 遇到“大量线程停在 Task.Wait”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
查看答案与解析

正确答案A

题目要求找出不成立的判断,“CPU 未满即可排除线程池饥饿”正是阻塞检测的典型误区。主规则“线程池线程数快速增长、队列积压和完成率下降是饥饿的重要组合信号”描述了实现应依赖的契约,边界“必须结合 trace 或 dump 查看阻塞栈,单一线程数不能直接定根因”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

108 准备上线涉及阻塞检测的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“CPU 未满即可排除线程池饥饿”完成修改,只要本地运行一次成功就立即发布。
  • B. 依据“线程池线程数快速增长、队列积压和完成率下降是饥饿的重要组合信号”实现,在“必须结合 trace 或 dump 查看阻塞栈,单一线程数不能直接定根因”成立的环境中验证,并为“大量线程停在 Task.Wait”保留可观测证据和回退条件。
  • C. 按照“线程池线程数快速增长、队列积压和完成率下降是饥饿的重要组合信号”修改代码,但不核对“必须结合 trace 或 dump 查看阻塞栈,单一线程数不能直接定根因”或目标发布模式。
  • D. 只验证“必须结合 trace 或 dump 查看阻塞栈,单一线程数不能直接定根因”,实现仍继续依赖“CPU 未满即可排除线程池饥饿”这一未经证明的假设。
查看答案与解析

正确答案B

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“线程池线程数快速增长、队列积压和完成率下降是饥饿的重要组合信号”,部署环境满足“必须结合 trace 或 dump 查看阻塞栈,单一线程数不能直接定根因”,并能在“大量线程停在 Task.Wait”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

109 关于Task.Run 包装,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. 所有同步数据库调用都可用 Task.Run 转换为可扩展异步 I/O
  • B. 少量受控 CPU 工作与不可替换同步库需要分别评估和限流
  • C. 只要观察到“并发升高后 Task.Run 队列堆积”,就能把这次现象视为所有环境中的固定行为。
  • D. 把同步 I/O 包进 Task.Run 只是把阻塞移到线程池,不能提高服务器可用线程总量
查看答案与解析

正确答案D

正确项给出了Task.Run 包装可直接依赖的规则:“把同步 I/O 包进 Task.Run 只是把阻塞移到线程池,不能提高服务器可用线程总量”。“少量受控 CPU 工作与不可替换同步库需要分别评估和限流”是应用规则前必须确认的边界,不是规则本身;“所有同步数据库调用都可用 Task.Run 转换为可扩展异步 I/O”则把常见现象或实现细节扩大成了平台保证。场景“并发升高后 Task.Run 队列堆积”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

110 生产环境出现“并发升高后 Task.Run 队列堆积”时,针对Task.Run 包装应如何排查?

难度: 进阶

  • A. 直接采用“所有同步数据库调用都可用 Task.Run 转换为可扩展异步 I/O”解释现象,不再收集目标进程和发布配置证据。
  • B. 只增加机器资源或重启进程,以一次恢复结果代替对“少量受控 CPU 工作与不可替换同步库需要分别评估和限流”的验证。
  • C. 先验证“少量受控 CPU 工作与不可替换同步库需要分别评估和限流”,再使用运行时指标、日志或最小复现检查“把同步 I/O 包进 Task.Run 只是把阻塞移到线程池,不能提高服务器可用线程总量”是否成立。
  • D. 只检查代码是否能够编译,通过后便认定“把同步 I/O 包进 Task.Run 只是把阻塞移到线程池,不能提高服务器可用线程总量”在当前部署中必然成立。
查看答案与解析

正确答案C

“并发升高后 Task.Run 队列堆积”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“少量受控 CPU 工作与不可替换同步库需要分别评估和限流”,再以“把同步 I/O 包进 Task.Run 只是把阻塞移到线程池,不能提高服务器可用线程总量”组织证据。采用误区“所有同步数据库调用都可用 Task.Run 转换为可扩展异步 I/O”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

111 评审Task.Run 包装相关实现时,以下哪项判断不成立?

难度: 实战

  • A. 把同步 I/O 包进 Task.Run 只是把阻塞移到线程池,不能提高服务器可用线程总量
  • B. 所有同步数据库调用都可用 Task.Run 转换为可扩展异步 I/O
  • C. 少量受控 CPU 工作与不可替换同步库需要分别评估和限流
  • D. 遇到“并发升高后 Task.Run 队列堆积”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
查看答案与解析

正确答案B

题目要求找出不成立的判断,“所有同步数据库调用都可用 Task.Run 转换为可扩展异步 I/O”正是Task.Run 包装的典型误区。主规则“把同步 I/O 包进 Task.Run 只是把阻塞移到线程池,不能提高服务器可用线程总量”描述了实现应依赖的契约,边界“少量受控 CPU 工作与不可替换同步库需要分别评估和限流”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

112 准备上线涉及Task.Run 包装的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“把同步 I/O 包进 Task.Run 只是把阻塞移到线程池,不能提高服务器可用线程总量”实现,在“少量受控 CPU 工作与不可替换同步库需要分别评估和限流”成立的环境中验证,并为“并发升高后 Task.Run 队列堆积”保留可观测证据和回退条件。
  • B. 依据“所有同步数据库调用都可用 Task.Run 转换为可扩展异步 I/O”完成修改,只要本地运行一次成功就立即发布。
  • C. 按照“把同步 I/O 包进 Task.Run 只是把阻塞移到线程池,不能提高服务器可用线程总量”修改代码,但不核对“少量受控 CPU 工作与不可替换同步库需要分别评估和限流”或目标发布模式。
  • D. 只验证“少量受控 CPU 工作与不可替换同步库需要分别评估和限流”,实现仍继续依赖“所有同步数据库调用都可用 Task.Run 转换为可扩展异步 I/O”这一未经证明的假设。
查看答案与解析

正确答案A

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“把同步 I/O 包进 Task.Run 只是把阻塞移到线程池,不能提高服务器可用线程总量”,部署环境满足“少量受控 CPU 工作与不可替换同步库需要分别评估和限流”,并能在“并发升高后 Task.Run 队列堆积”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

113 关于热路径分配,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. 只要改用 struct 就能消除所有请求分配
  • B. 请求热路径的大对象分配和频繁高代 GC 会增加停顿并降低有效吞吐
  • C. 优化前应通过分配率、GC 暂停和调用栈确认来源
  • D. 只要观察到“延迟尖峰与 Gen 2 GC 同时出现”,就能把这次现象视为所有环境中的固定行为。
查看答案与解析

正确答案B

正确项给出了热路径分配可直接依赖的规则:“请求热路径的大对象分配和频繁高代 GC 会增加停顿并降低有效吞吐”。“优化前应通过分配率、GC 暂停和调用栈确认来源”是应用规则前必须确认的边界,不是规则本身;“只要改用 struct 就能消除所有请求分配”则把常见现象或实现细节扩大成了平台保证。场景“延迟尖峰与 Gen 2 GC 同时出现”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

114 生产环境出现“延迟尖峰与 Gen 2 GC 同时出现”时,针对热路径分配应如何排查?

难度: 进阶

  • A. 先验证“优化前应通过分配率、GC 暂停和调用栈确认来源”,再使用运行时指标、日志或最小复现检查“请求热路径的大对象分配和频繁高代 GC 会增加停顿并降低有效吞吐”是否成立。
  • B. 直接采用“只要改用 struct 就能消除所有请求分配”解释现象,不再收集目标进程和发布配置证据。
  • C. 只增加机器资源或重启进程,以一次恢复结果代替对“优化前应通过分配率、GC 暂停和调用栈确认来源”的验证。
  • D. 只检查代码是否能够编译,通过后便认定“请求热路径的大对象分配和频繁高代 GC 会增加停顿并降低有效吞吐”在当前部署中必然成立。
查看答案与解析

正确答案A

“延迟尖峰与 Gen 2 GC 同时出现”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“优化前应通过分配率、GC 暂停和调用栈确认来源”,再以“请求热路径的大对象分配和频繁高代 GC 会增加停顿并降低有效吞吐”组织证据。采用误区“只要改用 struct 就能消除所有请求分配”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

115 评审热路径分配相关实现时,以下哪项判断不成立?

难度: 实战

  • A. 请求热路径的大对象分配和频繁高代 GC 会增加停顿并降低有效吞吐
  • B. 优化前应通过分配率、GC 暂停和调用栈确认来源
  • C. 只要改用 struct 就能消除所有请求分配
  • D. 遇到“延迟尖峰与 Gen 2 GC 同时出现”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
查看答案与解析

正确答案C

题目要求找出不成立的判断,“只要改用 struct 就能消除所有请求分配”正是热路径分配的典型误区。主规则“请求热路径的大对象分配和频繁高代 GC 会增加停顿并降低有效吞吐”描述了实现应依赖的契约,边界“优化前应通过分配率、GC 暂停和调用栈确认来源”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

116 准备上线涉及热路径分配的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“只要改用 struct 就能消除所有请求分配”完成修改,只要本地运行一次成功就立即发布。
  • B. 按照“请求热路径的大对象分配和频繁高代 GC 会增加停顿并降低有效吞吐”修改代码,但不核对“优化前应通过分配率、GC 暂停和调用栈确认来源”或目标发布模式。
  • C. 只验证“优化前应通过分配率、GC 暂停和调用栈确认来源”,实现仍继续依赖“只要改用 struct 就能消除所有请求分配”这一未经证明的假设。
  • D. 依据“请求热路径的大对象分配和频繁高代 GC 会增加停顿并降低有效吞吐”实现,在“优化前应通过分配率、GC 暂停和调用栈确认来源”成立的环境中验证,并为“延迟尖峰与 Gen 2 GC 同时出现”保留可观测证据和回退条件。
查看答案与解析

正确答案D

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“请求热路径的大对象分配和频繁高代 GC 会增加停顿并降低有效吞吐”,部署环境满足“优化前应通过分配率、GC 暂停和调用栈确认来源”,并能在“延迟尖峰与 Gen 2 GC 同时出现”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

117 关于异步全链路,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. Controller 方法标记 async 后所有下游调用都会自动变异步
  • B. 链路中一个同步瓶颈仍可能限制整体吞吐
  • C. 可扩展异步要求从入口到数据库和网络客户端都使用真正异步 API,并传播取消
  • D. 只要观察到“端点是 async 但内部调用同步 SDK”,就能把这次现象视为所有环境中的固定行为。
查看答案与解析

正确答案C

正确项给出了异步全链路可直接依赖的规则:“可扩展异步要求从入口到数据库和网络客户端都使用真正异步 API,并传播取消”。“链路中一个同步瓶颈仍可能限制整体吞吐”是应用规则前必须确认的边界,不是规则本身;“Controller 方法标记 async 后所有下游调用都会自动变异步”则把常见现象或实现细节扩大成了平台保证。场景“端点是 async 但内部调用同步 SDK”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

118 生产环境出现“端点是 async 但内部调用同步 SDK”时,针对异步全链路应如何排查?

难度: 进阶

  • A. 先验证“链路中一个同步瓶颈仍可能限制整体吞吐”,再使用运行时指标、日志或最小复现检查“可扩展异步要求从入口到数据库和网络客户端都使用真正异步 API,并传播取消”是否成立。
  • B. 直接采用“Controller 方法标记 async 后所有下游调用都会自动变异步”解释现象,不再收集目标进程和发布配置证据。
  • C. 只增加机器资源或重启进程,以一次恢复结果代替对“链路中一个同步瓶颈仍可能限制整体吞吐”的验证。
  • D. 只检查代码是否能够编译,通过后便认定“可扩展异步要求从入口到数据库和网络客户端都使用真正异步 API,并传播取消”在当前部署中必然成立。
查看答案与解析

正确答案A

“端点是 async 但内部调用同步 SDK”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“链路中一个同步瓶颈仍可能限制整体吞吐”,再以“可扩展异步要求从入口到数据库和网络客户端都使用真正异步 API,并传播取消”组织证据。采用误区“Controller 方法标记 async 后所有下游调用都会自动变异步”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

119 评审异步全链路相关实现时,以下哪项判断不成立?

难度: 实战

  • A. 可扩展异步要求从入口到数据库和网络客户端都使用真正异步 API,并传播取消
  • B. 链路中一个同步瓶颈仍可能限制整体吞吐
  • C. 遇到“端点是 async 但内部调用同步 SDK”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
  • D. Controller 方法标记 async 后所有下游调用都会自动变异步
查看答案与解析

正确答案D

题目要求找出不成立的判断,“Controller 方法标记 async 后所有下游调用都会自动变异步”正是异步全链路的典型误区。主规则“可扩展异步要求从入口到数据库和网络客户端都使用真正异步 API,并传播取消”描述了实现应依赖的契约,边界“链路中一个同步瓶颈仍可能限制整体吞吐”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

120 准备上线涉及异步全链路的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“Controller 方法标记 async 后所有下游调用都会自动变异步”完成修改,只要本地运行一次成功就立即发布。
  • B. 依据“可扩展异步要求从入口到数据库和网络客户端都使用真正异步 API,并传播取消”实现,在“链路中一个同步瓶颈仍可能限制整体吞吐”成立的环境中验证,并为“端点是 async 但内部调用同步 SDK”保留可观测证据和回退条件。
  • C. 按照“可扩展异步要求从入口到数据库和网络客户端都使用真正异步 API,并传播取消”修改代码,但不核对“链路中一个同步瓶颈仍可能限制整体吞吐”或目标发布模式。
  • D. 只验证“链路中一个同步瓶颈仍可能限制整体吞吐”,实现仍继续依赖“Controller 方法标记 async 后所有下游调用都会自动变异步”这一未经证明的假设。
查看答案与解析

正确答案B

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“可扩展异步要求从入口到数据库和网络客户端都使用真正异步 API,并传播取消”,部署环境满足“链路中一个同步瓶颈仍可能限制整体吞吐”,并能在“端点是 async 但内部调用同步 SDK”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

官方资料

当前分类

ASP.NET Core 生产实践选择题

查看全部分类 →
  1. 04ASP.NET Core 生产实践试题 04:Forwarded Headers 与反向代理边界20 题
  2. 05ASP.NET Core 生产实践试题 05:优雅关闭与后台任务终止20 题
  3. 06ASP.NET Core 生产实践试题 06:ThreadPool 饥饿与同步阻塞20 题
  4. 07ASP.NET Core 生产实践试题 07:背压、限流与并发限制20 题
  5. 08ASP.NET Core 生产实践试题 08:多实例状态、缓存与 Data Protection20 题
ESC

输入关键词开始搜索