我認爲最大的區別是新的請求管道的模塊化。過去,應用程序生命週期遵循一條相對嚴格的路徑,您可以通過類實現IHttpModule.
這將允許您影響請求,但只能在訂閱發生的不同事件的某些點上(例如BeginRequest,
AuthenticateRequest,
等等。)。
的這些完整描述可以在MSDN上找到:IIS 5 & 6或IIS 7,並創建這樣的模塊的漫遊可以是found here.
在新的ASP.NET 5的世界中,要求管線從系統分離.Web和IIS。它不是預定義的路徑,而是使用中間件的概念。如果您熟悉OWIN,這個想法是nearly identical,但其基本思想是這些中間件組件已註冊,然後請求按照它們註冊的順序通過它們。
每個中間件組件都提供了一個RequestDelegate
(流水線中的下一個中間件組件)和每個請求的當前HttpContext
。在每個請求中,調用組件,然後有機會將請求傳遞給鏈中的下一個(如果適用)。例如,如果認證失敗,認證組件可能會選擇不將請求傳遞給下一個組件。使用此係統,您可以根據自己的選擇真正處理請求,並且可以根據需要輕鬆或功能豐富。
This example現在有點過時(例如IBuilder
has been renamed到IApplicationBuilder
),但它仍然是如何構建和註冊這些組件的好概述。