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

ASP.NET Core 试题 01:应用启动与 WebApplication

0001 在 WebApplication.CreateBuilder 的框架契约中,哪项是应直接依赖的主规则?

难度: 基础

  • A. CreateBuilder 只创建一个空 DI 容器且不会加载任何配置
  • B. CreateBuilder 会装配配置、日志、依赖注入和常用宿主默认值
  • C. 传入的命令行参数和环境变量可能覆盖较低优先级配置
  • D. 观察到“应用在不同环境启动后读取到不同连接字符串”即可把一次现象当成完整框架契约。
查看答案与解析

正确答案B

正确答案直接描述 WebApplication.CreateBuilder 的主规则:CreateBuilder 会装配配置、日志、依赖注入和常用宿主默认值。选项“传入的命令行参数和环境变量可能覆盖较低优先级配置”是使用规则时要验证的边界,不是规则本身;“CreateBuilder 只创建一个空 DI 容器且不会加载任何配置”则是会导致错误实现的典型误区。场景只能提供线索,不能替代框架契约。

0002 应用在不同环境启动后读取到不同连接字符串。排查时哪项动作最合理?

难度: 进阶

  • A. 先验证“传入的命令行参数和环境变量可能覆盖较低优先级配置”,再依据“CreateBuilder 会装配配置、日志、依赖注入和常用宿主默认值”判断实现是否符合契约。
  • B. 直接按“CreateBuilder 只创建一个空 DI 容器且不会加载任何配置”定性,不再检查配置、身份或运行时证据。
  • C. 只增加重试次数或机器资源,暂不核对“传入的命令行参数和环境变量可能覆盖较低优先级配置”。
  • D. 以一次成功请求作为结论,不再确认“CreateBuilder 会装配配置、日志、依赖注入和常用宿主默认值”是否成立。
查看答案与解析

正确答案A

场景“应用在不同环境启动后读取到不同连接字符串”指向 WebApplication.CreateBuilder,但症状本身不能证明根因。正确排查应先确认边界“传入的命令行参数和环境变量可能覆盖较低优先级配置”,再用主规则“CreateBuilder 会装配配置、日志、依赖注入和常用宿主默认值”解释证据。直接采用误区“CreateBuilder 只创建一个空 DI 容器且不会加载任何配置”、只扩容或依赖一次成功都会掩盖真实配置和请求路径。

0003 关于 WebApplication.CreateBuilder,以下哪项说法不成立?

难度: 实战

  • A. CreateBuilder 会装配配置、日志、依赖注入和常用宿主默认值
  • B. 传入的命令行参数和环境变量可能覆盖较低优先级配置
  • C. 出现“应用在不同环境启动后读取到不同连接字符串”时,应收集证据并同时核对主规则与适用边界。
  • D. CreateBuilder 只创建一个空 DI 容器且不会加载任何配置
查看答案与解析

正确答案D

题目要求选出不成立的说法,答案“CreateBuilder 只创建一个空 DI 容器且不会加载任何配置”正是 WebApplication.CreateBuilder 的典型误区。其余三项分别给出了主规则“CreateBuilder 会装配配置、日志、依赖注入和常用宿主默认值”、适用边界“传入的命令行参数和环境变量可能覆盖较低优先级配置”以及面向场景的正确取证方式,不能因为题干使用否定问法而反选这些有效结论。

0004 针对“应用在不同环境启动后读取到不同连接字符串”进行上线评审,哪项决策依据最完整?

难度: 实战

  • A. 按“CreateBuilder 只创建一个空 DI 容器且不会加载任何配置”修改实现,并把一次请求成功作为验收结果。
  • B. 按“CreateBuilder 会装配配置、日志、依赖注入和常用宿主默认值”修改代码后直接上线,不验证“传入的命令行参数和环境变量可能覆盖较低优先级配置”。
  • C. 按“CreateBuilder 会装配配置、日志、依赖注入和常用宿主默认值”修正实现,并用测试或遥测验证“传入的命令行参数和环境变量可能覆盖较低优先级配置”。
  • D. 只验证“传入的命令行参数和环境变量可能覆盖较低优先级配置”,但实现仍继续依赖“CreateBuilder 只创建一个空 DI 容器且不会加载任何配置”。
查看答案与解析

正确答案C

完整决策同时覆盖规则与验证:CreateBuilder 会装配配置、日志、依赖注入和常用宿主默认值;并确认 传入的命令行参数和环境变量可能覆盖较低优先级配置。继续接受“CreateBuilder 只创建一个空 DI 容器且不会加载任何配置”会让评审依据失真;只改代码不验证边界,或只检查边界却沿用误区,都不足以判断“应用在不同环境启动后读取到不同连接字符串”这一生产场景能否安全上线。

0005 在 builder.Build 的框架契约中,哪项是应直接依赖的主规则?

难度: 基础

  • A. 可以在 app.Run 之后继续向 builder.Services 注册请求所需服务
  • B. Build 后不能再通过 builder.Services 添加新服务描述
  • C. Build 根据已注册服务创建应用,通常应在映射管道前调用一次
  • D. 观察到“某服务只在第一个请求到达后才尝试注册”即可把一次现象当成完整框架契约。
查看答案与解析

正确答案C

正确答案直接描述 builder.Build 的主规则:Build 根据已注册服务创建应用,通常应在映射管道前调用一次。选项“Build 后不能再通过 builder.Services 添加新服务描述”是使用规则时要验证的边界,不是规则本身;“可以在 app.Run 之后继续向 builder.Services 注册请求所需服务”则是会导致错误实现的典型误区。场景只能提供线索,不能替代框架契约。

0006 某服务只在第一个请求到达后才尝试注册。排查时哪项动作最合理?

难度: 进阶

  • A. 先验证“Build 后不能再通过 builder.Services 添加新服务描述”,再依据“Build 根据已注册服务创建应用,通常应在映射管道前调用一次”判断实现是否符合契约。
  • B. 直接按“可以在 app.Run 之后继续向 builder.Services 注册请求所需服务”定性,不再检查配置、身份或运行时证据。
  • C. 只增加重试次数或机器资源,暂不核对“Build 后不能再通过 builder.Services 添加新服务描述”。
  • D. 以一次成功请求作为结论,不再确认“Build 根据已注册服务创建应用,通常应在映射管道前调用一次”是否成立。
查看答案与解析

正确答案A

场景“某服务只在第一个请求到达后才尝试注册”指向 builder.Build,但症状本身不能证明根因。正确排查应先确认边界“Build 后不能再通过 builder.Services 添加新服务描述”,再用主规则“Build 根据已注册服务创建应用,通常应在映射管道前调用一次”解释证据。直接采用误区“可以在 app.Run 之后继续向 builder.Services 注册请求所需服务”、只扩容或依赖一次成功都会掩盖真实配置和请求路径。

0007 关于 builder.Build,以下哪项说法不成立?

难度: 实战

  • A. Build 根据已注册服务创建应用,通常应在映射管道前调用一次
  • B. 可以在 app.Run 之后继续向 builder.Services 注册请求所需服务
  • C. Build 后不能再通过 builder.Services 添加新服务描述
  • D. 出现“某服务只在第一个请求到达后才尝试注册”时,应收集证据并同时核对主规则与适用边界。
查看答案与解析

正确答案B

题目要求选出不成立的说法,答案“可以在 app.Run 之后继续向 builder.Services 注册请求所需服务”正是 builder.Build 的典型误区。其余三项分别给出了主规则“Build 根据已注册服务创建应用,通常应在映射管道前调用一次”、适用边界“Build 后不能再通过 builder.Services 添加新服务描述”以及面向场景的正确取证方式,不能因为题干使用否定问法而反选这些有效结论。

0008 针对“某服务只在第一个请求到达后才尝试注册”进行上线评审,哪项决策依据最完整?

难度: 实战

  • A. 按“可以在 app.Run 之后继续向 builder.Services 注册请求所需服务”修改实现,并把一次请求成功作为验收结果。
  • B. 按“Build 根据已注册服务创建应用,通常应在映射管道前调用一次”修改代码后直接上线,不验证“Build 后不能再通过 builder.Services 添加新服务描述”。
  • C. 只验证“Build 后不能再通过 builder.Services 添加新服务描述”,但实现仍继续依赖“可以在 app.Run 之后继续向 builder.Services 注册请求所需服务”。
  • D. 按“Build 根据已注册服务创建应用,通常应在映射管道前调用一次”修正实现,并用测试或遥测验证“Build 后不能再通过 builder.Services 添加新服务描述”。
查看答案与解析

正确答案D

完整决策同时覆盖规则与验证:Build 根据已注册服务创建应用,通常应在映射管道前调用一次;并确认 Build 后不能再通过 builder.Services 添加新服务描述。继续接受“可以在 app.Run 之后继续向 builder.Services 注册请求所需服务”会让评审依据失真;只改代码不验证边界,或只检查边界却沿用误区,都不足以判断“某服务只在第一个请求到达后才尝试注册”这一生产场景能否安全上线。

0009 在 WebApplication.Environment 的框架契约中,哪项是应直接依赖的主规则?

难度: 基础

  • A. 只要编译为 Release,Environment 就一定是 Production
  • B. 环境名应由部署配置决定,不能把 Development 当作安全边界
  • C. Environment 提供环境名、内容根目录和 Web 根目录等宿主信息
  • D. 观察到“生产部署意外显示开发异常页”即可把一次现象当成完整框架契约。
查看答案与解析

正确答案C

正确答案直接描述 WebApplication.Environment 的主规则:Environment 提供环境名、内容根目录和 Web 根目录等宿主信息。选项“环境名应由部署配置决定,不能把 Development 当作安全边界”是使用规则时要验证的边界,不是规则本身;“只要编译为 Release,Environment 就一定是 Production”则是会导致错误实现的典型误区。场景只能提供线索,不能替代框架契约。

0010 生产部署意外显示开发异常页。排查时哪项动作最合理?

难度: 进阶

  • A. 直接按“只要编译为 Release,Environment 就一定是 Production”定性,不再检查配置、身份或运行时证据。
  • B. 只增加重试次数或机器资源,暂不核对“环境名应由部署配置决定,不能把 Development 当作安全边界”。
  • C. 以一次成功请求作为结论,不再确认“Environment 提供环境名、内容根目录和 Web 根目录等宿主信息”是否成立。
  • D. 先验证“环境名应由部署配置决定,不能把 Development 当作安全边界”,再依据“Environment 提供环境名、内容根目录和 Web 根目录等宿主信息”判断实现是否符合契约。
查看答案与解析

正确答案D

场景“生产部署意外显示开发异常页”指向 WebApplication.Environment,但症状本身不能证明根因。正确排查应先确认边界“环境名应由部署配置决定,不能把 Development 当作安全边界”,再用主规则“Environment 提供环境名、内容根目录和 Web 根目录等宿主信息”解释证据。直接采用误区“只要编译为 Release,Environment 就一定是 Production”、只扩容或依赖一次成功都会掩盖真实配置和请求路径。

0011 关于 WebApplication.Environment,以下哪项说法不成立?

难度: 实战

  • A. Environment 提供环境名、内容根目录和 Web 根目录等宿主信息
  • B. 只要编译为 Release,Environment 就一定是 Production
  • C. 环境名应由部署配置决定,不能把 Development 当作安全边界
  • D. 出现“生产部署意外显示开发异常页”时,应收集证据并同时核对主规则与适用边界。
查看答案与解析

正确答案B

题目要求选出不成立的说法,答案“只要编译为 Release,Environment 就一定是 Production”正是 WebApplication.Environment 的典型误区。其余三项分别给出了主规则“Environment 提供环境名、内容根目录和 Web 根目录等宿主信息”、适用边界“环境名应由部署配置决定,不能把 Development 当作安全边界”以及面向场景的正确取证方式,不能因为题干使用否定问法而反选这些有效结论。

0012 针对“生产部署意外显示开发异常页”进行上线评审,哪项决策依据最完整?

难度: 实战

  • A. 按“Environment 提供环境名、内容根目录和 Web 根目录等宿主信息”修正实现,并用测试或遥测验证“环境名应由部署配置决定,不能把 Development 当作安全边界”。
  • B. 按“只要编译为 Release,Environment 就一定是 Production”修改实现,并把一次请求成功作为验收结果。
  • C. 按“Environment 提供环境名、内容根目录和 Web 根目录等宿主信息”修改代码后直接上线,不验证“环境名应由部署配置决定,不能把 Development 当作安全边界”。
  • D. 只验证“环境名应由部署配置决定,不能把 Development 当作安全边界”,但实现仍继续依赖“只要编译为 Release,Environment 就一定是 Production”。
查看答案与解析

正确答案A

完整决策同时覆盖规则与验证:Environment 提供环境名、内容根目录和 Web 根目录等宿主信息;并确认 环境名应由部署配置决定,不能把 Development 当作安全边界。继续接受“只要编译为 Release,Environment 就一定是 Production”会让评审依据失真;只改代码不验证边界,或只检查边界却沿用误区,都不足以判断“生产部署意外显示开发异常页”这一生产场景能否安全上线。

0013 在 Map 与 Use 的框架契约中,哪项是应直接依赖的主规则?

难度: 基础

  • A. 所有 MapGet 都必须写在 app.UseRouting 之前才能生效
  • B. 中间件和端点映射的顺序会影响可见的 Endpoint 及执行行为
  • C. 观察到“授权中间件没有对新端点执行”即可把一次现象当成完整框架契约。
  • D. MapGet 等端点映射负责声明路由处理程序,Use 用于组合中间件管道
查看答案与解析

正确答案D

正确答案直接描述 Map 与 Use 的主规则:MapGet 等端点映射负责声明路由处理程序,Use 用于组合中间件管道。选项“中间件和端点映射的顺序会影响可见的 Endpoint 及执行行为”是使用规则时要验证的边界,不是规则本身;“所有 MapGet 都必须写在 app.UseRouting 之前才能生效”则是会导致错误实现的典型误区。场景只能提供线索,不能替代框架契约。

0014 授权中间件没有对新端点执行。排查时哪项动作最合理?

难度: 进阶

  • A. 直接按“所有 MapGet 都必须写在 app.UseRouting 之前才能生效”定性,不再检查配置、身份或运行时证据。
  • B. 只增加重试次数或机器资源,暂不核对“中间件和端点映射的顺序会影响可见的 Endpoint 及执行行为”。
  • C. 先验证“中间件和端点映射的顺序会影响可见的 Endpoint 及执行行为”,再依据“MapGet 等端点映射负责声明路由处理程序,Use 用于组合中间件管道”判断实现是否符合契约。
  • D. 以一次成功请求作为结论,不再确认“MapGet 等端点映射负责声明路由处理程序,Use 用于组合中间件管道”是否成立。
查看答案与解析

正确答案C

场景“授权中间件没有对新端点执行”指向 Map 与 Use,但症状本身不能证明根因。正确排查应先确认边界“中间件和端点映射的顺序会影响可见的 Endpoint 及执行行为”,再用主规则“MapGet 等端点映射负责声明路由处理程序,Use 用于组合中间件管道”解释证据。直接采用误区“所有 MapGet 都必须写在 app.UseRouting 之前才能生效”、只扩容或依赖一次成功都会掩盖真实配置和请求路径。

0015 关于 Map 与 Use,以下哪项说法不成立?

难度: 实战

  • A. 所有 MapGet 都必须写在 app.UseRouting 之前才能生效
  • B. MapGet 等端点映射负责声明路由处理程序,Use 用于组合中间件管道
  • C. 中间件和端点映射的顺序会影响可见的 Endpoint 及执行行为
  • D. 出现“授权中间件没有对新端点执行”时,应收集证据并同时核对主规则与适用边界。
查看答案与解析

正确答案A

题目要求选出不成立的说法,答案“所有 MapGet 都必须写在 app.UseRouting 之前才能生效”正是 Map 与 Use 的典型误区。其余三项分别给出了主规则“MapGet 等端点映射负责声明路由处理程序,Use 用于组合中间件管道”、适用边界“中间件和端点映射的顺序会影响可见的 Endpoint 及执行行为”以及面向场景的正确取证方式,不能因为题干使用否定问法而反选这些有效结论。

0016 针对“授权中间件没有对新端点执行”进行上线评审,哪项决策依据最完整?

难度: 实战

  • A. 按“所有 MapGet 都必须写在 app.UseRouting 之前才能生效”修改实现,并把一次请求成功作为验收结果。
  • B. 按“MapGet 等端点映射负责声明路由处理程序,Use 用于组合中间件管道”修正实现,并用测试或遥测验证“中间件和端点映射的顺序会影响可见的 Endpoint 及执行行为”。
  • C. 按“MapGet 等端点映射负责声明路由处理程序,Use 用于组合中间件管道”修改代码后直接上线,不验证“中间件和端点映射的顺序会影响可见的 Endpoint 及执行行为”。
  • D. 只验证“中间件和端点映射的顺序会影响可见的 Endpoint 及执行行为”,但实现仍继续依赖“所有 MapGet 都必须写在 app.UseRouting 之前才能生效”。
查看答案与解析

正确答案B

完整决策同时覆盖规则与验证:MapGet 等端点映射负责声明路由处理程序,Use 用于组合中间件管道;并确认 中间件和端点映射的顺序会影响可见的 Endpoint 及执行行为。继续接受“所有 MapGet 都必须写在 app.UseRouting 之前才能生效”会让评审依据失真;只改代码不验证边界,或只检查边界却沿用误区,都不足以判断“授权中间件没有对新端点执行”这一生产场景能否安全上线。

0017 在 app.Run 的框架契约中,哪项是应直接依赖的主规则?

难度: 基础

  • A. Run 启动宿主并阻塞到应用关闭;测试场景可使用 RunAsync 或 StartAsync
  • B. Run 只是注册终结中间件,不会启动服务器
  • C. Run 之后的普通语句在宿主停止前不会执行
  • D. 观察到“启动日志打印后进程立刻退出且无监听端口”即可把一次现象当成完整框架契约。
查看答案与解析

正确答案A

正确答案直接描述 app.Run 的主规则:Run 启动宿主并阻塞到应用关闭;测试场景可使用 RunAsync 或 StartAsync。选项“Run 之后的普通语句在宿主停止前不会执行”是使用规则时要验证的边界,不是规则本身;“Run 只是注册终结中间件,不会启动服务器”则是会导致错误实现的典型误区。场景只能提供线索,不能替代框架契约。

0018 启动日志打印后进程立刻退出且无监听端口。排查时哪项动作最合理?

难度: 进阶

  • A. 直接按“Run 只是注册终结中间件,不会启动服务器”定性,不再检查配置、身份或运行时证据。
  • B. 只增加重试次数或机器资源,暂不核对“Run 之后的普通语句在宿主停止前不会执行”。
  • C. 先验证“Run 之后的普通语句在宿主停止前不会执行”,再依据“Run 启动宿主并阻塞到应用关闭;测试场景可使用 RunAsync 或 StartAsync”判断实现是否符合契约。
  • D. 以一次成功请求作为结论,不再确认“Run 启动宿主并阻塞到应用关闭;测试场景可使用 RunAsync 或 StartAsync”是否成立。
查看答案与解析

正确答案C

场景“启动日志打印后进程立刻退出且无监听端口”指向 app.Run,但症状本身不能证明根因。正确排查应先确认边界“Run 之后的普通语句在宿主停止前不会执行”,再用主规则“Run 启动宿主并阻塞到应用关闭;测试场景可使用 RunAsync 或 StartAsync”解释证据。直接采用误区“Run 只是注册终结中间件,不会启动服务器”、只扩容或依赖一次成功都会掩盖真实配置和请求路径。

0019 关于 app.Run,以下哪项说法不成立?

难度: 实战

  • A. Run 启动宿主并阻塞到应用关闭;测试场景可使用 RunAsync 或 StartAsync
  • B. Run 之后的普通语句在宿主停止前不会执行
  • C. 出现“启动日志打印后进程立刻退出且无监听端口”时,应收集证据并同时核对主规则与适用边界。
  • D. Run 只是注册终结中间件,不会启动服务器
查看答案与解析

正确答案D

题目要求选出不成立的说法,答案“Run 只是注册终结中间件,不会启动服务器”正是 app.Run 的典型误区。其余三项分别给出了主规则“Run 启动宿主并阻塞到应用关闭;测试场景可使用 RunAsync 或 StartAsync”、适用边界“Run 之后的普通语句在宿主停止前不会执行”以及面向场景的正确取证方式,不能因为题干使用否定问法而反选这些有效结论。

0020 针对“启动日志打印后进程立刻退出且无监听端口”进行上线评审,哪项决策依据最完整?

难度: 实战

  • A. 按“Run 只是注册终结中间件,不会启动服务器”修改实现,并把一次请求成功作为验收结果。
  • B. 按“Run 启动宿主并阻塞到应用关闭;测试场景可使用 RunAsync 或 StartAsync”修正实现,并用测试或遥测验证“Run 之后的普通语句在宿主停止前不会执行”。
  • C. 按“Run 启动宿主并阻塞到应用关闭;测试场景可使用 RunAsync 或 StartAsync”修改代码后直接上线,不验证“Run 之后的普通语句在宿主停止前不会执行”。
  • D. 只验证“Run 之后的普通语句在宿主停止前不会执行”,但实现仍继续依赖“Run 只是注册终结中间件,不会启动服务器”。
查看答案与解析

正确答案B

完整决策同时覆盖规则与验证:Run 启动宿主并阻塞到应用关闭;测试场景可使用 RunAsync 或 StartAsync;并确认 Run 之后的普通语句在宿主停止前不会执行。继续接受“Run 只是注册终结中间件,不会启动服务器”会让评审依据失真;只改代码不验证边界,或只检查边界却沿用误区,都不足以判断“启动日志打印后进程立刻退出且无监听端口”这一生产场景能否安全上线。

官方资料

当前分类

ASP.NET Core 选择题

查看全部分类 →
  1. 01ASP.NET Core 试题 01:应用启动与 WebApplication20 题
  2. 02ASP.NET Core 试题 02:Generic Host 与应用生命周期20 题
  3. 03ASP.NET Core 试题 03:Kestrel 与服务器配置20 题
  4. 04ASP.NET Core 试题 04:请求管道与中间件顺序20 题
  5. 05ASP.NET Core 试题 05:自定义中间件20 题
ESC

输入关键词开始搜索