告别迷茫!.NET Web 应用工作流拆解

13 阅读1分钟

.NET工作流程

1、从本质上来讲,.NET只有两个工作流程:

  1. 启动流程
  2. 响应流程
    Over...结束了,就只有这么多,简单明了。

2、启动流程

2.1 1个对象5个成员

启动流程中有1个对象,5个成员:

  • 对象:WebApplicationBuilder
  • 成员:
    • Configuration:负责应用的配置管理;
    • Service:负责注册服务;
    • Environment:负责当前运行环境的信息和配置能力;
    • Logging:负责日志相关;
    • WebHost/Host:负责Web主机和通用主机的配置;

2.2 5个成员4个步骤

  1. 初始化WebApplicationBuilder:
var builder = WebApplication.CreateBuilder(args);
  1. 5个成员分别实例化:
builder.Configuration.xxx
builder.Services.xxx
builder.Environment.xxx
builder.Logging.xxx
builder.WebHost.xxx/builder.Host.xxx
  1. 实例化WebApplication:

把5个成员装配成功后,builder.build()得到一个WebApplication,它就代表了整个Web应用程序,给它配置一些规则-组装HttpPipeline:

var app = builder.build();
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();

4.app.Run()-点火监听

启动kestrel并开始监听HttpRequest.

响应流程

主要对象是kestrel。

kestrel循环监听端口,绑定处理动作,根据不同的协议创建不同的处理管道kestrelConnection。当kestrel坚定到请求时,就开一个线程去处理,如果没有请求就死循环等待。kestrel为每个请求分配id,交给kestrelConnection处理:包括自身的一些东西,http的报文解析以及HttpPipeline的处理。

其工作步骤为:

  1. 启动kestrel服务器(app.Run())
  2. 监听端口
  3. 接受请求
  4. 读取请求数据
  5. 创建HttpContext
  6. 中间件管道处理
  7. 生成响应返回客户端

声明:这篇文章完全是照搬了下面链接的内容,仅仅是作为一个记录,以有侵权可随时联系删除。
文章引用:# .NET基础篇-3.NET的工作流程