asp.net core 原始碼每日讀 -- Hosting 總結

weixin_34247155發表於2017-06-17

前言

前面兩篇我們把Hosting原始碼中兩個最重要的類WebHostWebHostBuilder進行了解析. 為了照顧到所有的讀者, 讀程式碼的部分儘量做到詳盡. 卻又不免羅嗦. 這裡做一個總結, 儘量做到言簡意賅.

3065132-6a0da0fb61915724.png

啟動一個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技術交流群歡迎你, 掃描下面二維碼進群.

3065132-dc36b4536e01af3d.jpg

相關文章