【问题标题】:Hosting outofprocess 3.1 web app require Windows Server Hosting updated too?托管 outofprocess 3.1 Web 应用程序是否也需要更新 Windows Server Hosting?
【发布时间】:2020-10-29 00:53:27
【问题描述】:
在尝试在 IIS 上托管 dot net core 应用程序时,我试图了解 inProcess 和 outofprocess 之间的区别。如果我在进程外托管,是否仍需要更新的 .net 核心服务器托管,或者根本安装?
【问题讨论】:
标签:
iis
.net-core
host
out-of-process
【解决方案1】:
无论您是使用进程内还是进程外,都需要使用 .net 核心服务器托管。 Host
在启动时,ASP.NET Core 应用会构建一个主机。主机封装了应用程序的所有资源,例如:1. HTTP 服务器实现 2. 中间件组件 3. 日志记录 4. 依赖注入 (DI) 服务 5. 配置
In process hosting model
- 请求从 Web 到达内核模式 HTTP.sys 驱动程序。
- 驱动程序将本机请求路由到网站上的 IIS
配置的端口,通常是 80 (HTTP) 或 443 (HTTPS)。
- ASP.NET Core 模块接收本机请求并将其传递给
IIS HTTP 服务器 (IISHttpServer)。 IIS HTTP 服务器是一个进程内
将请求从本机转换为 IIS 的服务器实现
管理。
IIS HTTP Server 处理请求后:
- 请求被发送到 ASP.NET Core 中间件管道。
- 中间件管道处理请求并将其作为
应用逻辑的 HttpContext 实例。
- 应用的响应通过 IIS HTTP 服务器传回 IIS。
- IIS 将响应发送给发起请求的客户端。
Out-of-process hosting model
- 请求从 Web 到达内核模式 HTTP.sys 驱动程序。
- 驱动程序将请求路由到网站配置的 IIS
港口。配置的端口通常是 80 (HTTP) 或 443 (HTTPS)。
- 模块将请求转发到随机端口上的 Kestrel
应用程序。随机端口不是 80 或 443。