小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

14.ASP.NET Core請求處理管道

 Coder編程 2021-04-04

在這篇文章中,我將通過一個示例,來講解ASP.NET Core中的請求處理管道。在這篇文章中,我們將討論下面幾個點:

  1. 理解ASP.NET Core請求處理管道
  2. 怎樣在ASP.NET中創(chuàng)建并注冊多個中間件組件?
  3. 請求管道中,中間件執(zhí)行的順序是咋樣的?

理解ASP.NET Core請求處理管道

為了理解ASP.NET Core中的請求處理管道,我們來修改一下Configure方法。這里我們向請求管道中注冊了三個中間件組件。正如你所見,前面兩個中間件是使用Use擴展方法注冊的,最后一個是使用Run擴展方法注冊的。

image

代碼解釋:

首先我們向Configure方法注入了日志中間件,也就是ILogger<Startup>.  Program類中的Main方法調(diào)用 CreateDefaultBuilder方法,來配置日志。

ASP.NET Core Request Processing Pipeline ConfigureLogging

在上面圖片中,你可以發(fā)現(xiàn),日志提供了Console、Debug、以及EventSource.在這篇例子中,我使用的日志實例來記錄日志。

如果你是通過.NET Core CLI來運行程序的話,那么你可以在命令行窗口可以看到日志信息,如果你是通過Visual Studio來運行程序的話,你可以在輸出窗口看到日志信息。

現(xiàn)在運行程序就會發(fā)現(xiàn):

ASP.NET Core Request Processing Pipeline

你會看到輸出的順序:

Middleware1: Incoming Request
Middleware2: Incoming Request
Middleware3: Incoming Request handled and response generated
Middleware2: Outgoing Response
Middleware1: Outgoing Response

理解ASP.NET Core請求處理管道的執(zhí)行順序

為了理解這個,我們看下,下面的這個圖:

ASP.NET Core Request Processing pipeline Order

當(dāng)HTTP請求來臨的時候,首先被中間件1發(fā)現(xiàn),然后記錄日志信息。一旦中間件1記錄了日志信息,就會調(diào)用next方法,然后就調(diào)用中間件2.同樣中間件2,調(diào)用next方法,調(diào)用中間件3.因為中間件3是使用Run擴展方法注冊的。所以是個終結(jié)中間件。這個時候就會回傳,也就會打印Middleware2: Outgoing Response,以及Middleware1: Outgoing Response。

需要特別注意的是:

ASP.NET Core請求處理管道,是由一系列有序的中間件組件組成的,他們是一個接一個被調(diào)用的。每一個中間件組件可以在調(diào)用下一個中間件之前或者之后,執(zhí)行一些操作。當(dāng)一個中間件,不去調(diào)用下一個中間件,這被稱為請求管道短路。中間件可以獲取請求也可以處理響應(yīng)。

你需要記住的是:中間件是按照你添加的順序執(zhí)行的,然后響應(yīng)剛好是相反的順序。

下篇文章中,我們將學(xué)習(xí),ASP.NET Core中使用靜態(tài)中間件,處理靜態(tài)文件。這篇文章,我向大家解釋了,ASP.NET Core請求處理管道,希望能幫到大家。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多