我已经阅读了.NET4.6的新功能,其中之一就是ASP.NET 5,我对此感到非常兴奋。
新事物之一是New modular HTTP request pipeline
,但是没有关于它要如何精确变化的更多信息。
ASP.NET 5引入了一种精简且快速的新HTTP请求管道。该管道是模块化的,因此您只能添加所需的组件。通过减少管道中的开销,您的应用程序将获得更好的吞吐量。新的管道还支持OWIN。
ASP.NET4.5和ASP.NET5 Http管道之间的主要区别是什么?如何控制模块化?
我认为最大的不同是新请求管道的模块化。过去,应用程序生命周期遵循一条相对严格的路径,您可以通过实现该类的类来挂钩。IHttpModule.
这将允许您影响请求,但只能在此过程中的某些点通过订阅发生的不同事件(例如,BeginRequest,
AuthenticateRequest,
等)来进行。 。
这些的完整描述可以在MSDN上找到:IIS 5和6或IIS 7,并且可以在此处找到创建这种模块的演练。
在新的ASP.NET 5世界中,请求管道与System.Web和IIS分离。它使用中间件的概念来代替预先定义的路径。如果您熟悉OWIN,那么这个想法几乎是相同的,但是基本的想法是注册了这些中间件组件,然后请求按照注册的顺序通过它们。
向每个中间件组件RequestDelegate
(流水线中的下一个中间件组件)提供了当前的HttpContext
每个请求。在每个请求上,都会调用该组件,然后有机会将请求传递到链中的下一个(如果适用)。例如,如果身份验证失败,则身份验证组件可能选择不将请求传递给下一个组件。使用该系统,您可以真正以任何选择的方式处理请求,并且可以轻巧或功能丰富。
这个示例现在有点过时了(例如IBuilder
,已经重命名为IApplicationBuilder
),但是仍然很好地概述了如何构建和注册这些组件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句