1. 程式人生 > >ASP.NET Core2.2 源碼閱讀筆記---啟動過程說明

ASP.NET Core2.2 源碼閱讀筆記---啟動過程說明

services 器) ons enter pro quest core ice 應用

1、引言

  ASP.NET Core應用程序擁有一個內置的Self-Hosted(自托管)Web Server(Web服務器),用來處理外部請求。在ASP.NET Core應用中通過配置並啟動一個Host來完成應用程序的啟動。

2、WebHostBuilder

  通過配制及組裝生成調用Build()方法生成WebHost,構造IServiceCollection、IServiceProvider及IConfiguration給WebHost使用。

3、WebHost

  構建內置的Self-Hosted(自托管)Web Server(Web服務器),通過IServer服務接收請求。

4、IServer

  IServer服務接收請求轉交IHttpApplication來構造HttpContext

5、IHttpApplication

  IHttpApplication使用請求管線(Pipeline)處理Request請求並Response結果。

6、以上關系圖如下

技術分享圖片

7、總結

  • 首先使用WebHostBuildler註冊基本信息;
  • 在WebHost = WebHostBuildler.Build()過程中,添加大量基本服務+StartUp.ConfigureServices()方法中的服務;
  • 在WebHost.Start()方法中,利用StartUp.Configure()方法中使用的服務+一些默認使用的服務組建請求管道,並存儲在_application字段中;
  • 使用_application構造一個HostingApplication,並傳入Server.StartAsync()方法;
  • Server使用HostingApplication來構造HttpContext,並使用請求管線(Pipeline)處理它。

ASP.NET Core2.2 源碼閱讀筆記---啟動過程說明