ASP.NET Core2.2 源碼閱讀筆記---啟動過程說明
阿新 • • 發佈:2018-08-24
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 源碼閱讀筆記---啟動過程說明