2014-12-04 34 views
3

我已閱讀.NET4.6中的新增內容以及is ASP.NET 5之一,這讓我很興奮。ASP.NET4和ASP.NET5 Http管道之間有什麼區別?

其中一件新事物是New modular HTTP request pipeline,但沒有關於它究竟會如何改變的更多信息。

唯一reference in the article is

ASP.NET 5引入了一個新的HTTP請求管道是精簡的 快。這條管道是模塊化的,所以你只能添加你需要的組件 。通過減少管道開銷,你的應用程序將會獲得更好的吞吐量。新的管道也支持OWIN。

ASP.NET4.5和ASP.NET5 Http管道之間的主要區別是什麼?模塊化將如何被控制?

回答

6

我認爲最大的區別新的請求管道的模塊化。過去,應用程序生命週期遵循一條相對嚴格的路徑,您可以通過類實現IHttpModule.這將允許您影響請求,但只能在訂閱發生的不同事件的某些點上(例如BeginRequest,AuthenticateRequest,等等。)。

的這些完整描述可以在MSDN上找到:IIS 5 & 6IIS 7,並創建這樣的模塊的漫遊可以是found here.

在新的ASP.NET 5的世界中,要求管線從系統分離.Web和IIS。它不是預定義的路徑,而是使用中間件的概念。如果您熟悉OWIN,這個想法是nearly identical,但其基本思想是這些中間件組件已註冊,然後請求按照它們註冊的順序通過它們。

每個中間件組件都提供了一個RequestDelegate(流水線中的下一個中間件組件)和每個請求的當前HttpContext。在每個請求中,調用組件,然後有機會將請求傳遞給鏈中的下一個(如果適用)。例如,如果認證失敗,認證組件可能會選擇不將請求傳遞給下一個組件。使用此係統,您可以根據自己的選擇真正處理請求,並且可以根據需要輕鬆或功能豐富。

This example現在有點過時(例如IBuilderhas been renamedIApplicationBuilder),但它仍然是如何構建和註冊這些組件的好概述。

相關問題