C#面试题更新 2026-08-05

请解释 .NET Core 中的 Hosting Model 是什么,并列举其类型。

技术原理方案权衡.NET Core

考察说明

考查对 .NET Core 托管模型概念及类型的理解。

回答思路

  1. 【回答框架 1】Hosting Model 是 .NET Core 应用启动和运行时的宿主环境模型,负责配置服务、构建请求管道并管理应用生命周期。
  2. 【回答框架 2】主要类型包括 In-Process Hosting 和 Out-of-Process Hosting。In-Process 模式下应用直接运行在 IIS 工作进程内,性能更好;Out-of-Process 模式则通过 Kestrel 服务器独立运行,由 IIS 作为反向代理转发请求。
  3. 【回答框架 3】选择依据:In-Process 适合高吞吐、低延迟场景,Out-of-Process 提供更好的隔离性和灵活性,便于独立部署和扩展。
  4. 【回答框架 4】配置方式:在项目文件中通过 AspNetCoreHostingModel 属性指定,或使用 web.config 中的 hostingModel 设置。
  5. 【回答框架 5】实际应用中需根据部署环境和性能需求权衡,同时注意版本兼容性。
  6. 【关键点 1】Hosting Model 决定应用托管方式,影响性能和隔离性。
  7. 【关键点 2】In-Process 直接运行于 IIS 进程,Out-of-Process 通过 Kestrel 独立运行。
  8. 【关键点 3】通过 AspNetCoreHostingModel 属性或 web.config 配置。
  9. 【关键点 4】选择需考虑性能、隔离和部署灵活性。
  10. 【易错点 1】不要混淆 Hosting Model 与通用主机(Generic Host),后者用于非 Web 应用。
  11. 【易错点 2】In-Process 模式下 IIS 回收会影响应用,需注意进程生命周期管理。
  12. 【易错点 3】配置错误可能导致应用无法启动,需检查项目文件与 web.config 一致性。