0

在尝试在 IIS 上托管 dot net core 应用程序时,我试图了解 inProcess 和 outofprocess 之间的区别。如果我在进程外托管,它是否仍需要更新的 .net 核心服务器托管,或者根本安装?

4

1 回答 1

0

无论您是使用进程内还是进程外,都需要使用 .net 核心服务器托管。主持人

在启动时,一个 ASP.NET Core 应用程序会构建一个主机。主机封装了应用程序的所有资源,例如: 1. HTTP 服务器实现 2. 中间件组件 3. 日志记录 4. 依赖注入 (DI) 服务 5. 配置

进程内托管模型

  1. 请求从 Web 到达内核模式 HTTP.sys 驱动程序。
  2. 驱动程序将本机请求路由到网站配置端口上的 IIS,通常是 80 (HTTP) 或 443 (HTTPS)。
  3. ASP.NET Core 模块接收本机请求并将其传递给 IIS HTTP Server (IISHttpServer)。IIS HTTP Server 是 IIS 的进程内服务器实现,可将请求从本机转换为托管。IIS HTTP Server 处理请求后:
  4. 请求被发送到 ASP.NET Core 中间件管道。
  5. 中间件管道处理请求并将其作为 HttpContext 实例传递给应用程序的逻辑。
  6. 应用程序的响应通过 IIS HTTP 服务器传回 IIS。
  7. IIS 将响应发送到发起请求的客户端。

进程外托管模型

  1. 请求从 Web 到达内核模式 HTTP.sys 驱动程序。
  2. 驱动程序将请求路由到网站配置端口上的 IIS。配置的端口通常是 80 (HTTP) 或 443 (HTTPS)。
  3. 该模块将请求转发到应用程序的随机端口上的 Kestrel。随机端口不是 80 或 443。
于 2020-10-29T07:04:03.063 回答