前言
前面两篇我们把Hosting源码中两个最重要的类WebHost和WebHostBuilder进行了解析. 为了照顾到所有的读者, 读代码的部分尽量做到详尽. 却又不免罗嗦. 这里做一个总结, 尽量做到言简意赅.
启动一个Web 应用时发生了什么?
1. 通过WebHostBuilder对WebHost进行配置
我们会在Program.cs的Main函数中对相应配置项进行配置, 配置项包含所使用的Web容器, Web文件的路径, Startup类的指定, 地址端口等.
2. 生成WebHost
此时会把配置项导入到WebHost实例当中, 对于没有指定的配置, 会使用默认值. 另外会生成一个服务的容器, 用于存储业务逻辑相关的服务. 并将一些服务装入容器中.
3. 启动WebHost
此时会根据前面的配置生成实际的应用处理逻辑, 并将这些业务逻辑的服务装入容器中.
接到一个HTTP请求时发生了什么?
我还没有看到MVC相关的内容, 所以范围之在Hosting中.
1. 接到一个请求时会先创建HttpContext对象
此过程会通过HostApplication对象处理.
2. 根据Startup定义的处理逻辑, 按顺序依次处理请求
此过程会通过调用ProcessRequestAsync函数进行处理.
--------------------------华丽丽的分割-----------------------------------
愿dotnet社区日益强大, 愿dotnet生态日趋完善. dotnet core技术交流群欢迎你, 扫描下面二维码进群.