asp.net Core与asp.net4.x比的一些变化
资料:将 HTTP 处理程序和模块迁移到 ASP.NET Core 中间件 | Microsoft Learn
从处理程序和模块到中间件
中间件比 HTTP 模块和处理程序更简单:
-
模块、处理程序、
Global.asax.cs
、Web.config(IIS 配置除外)和应用程序生命周期已不存在 -
模块和处理程序的角色由中间件接管
-
中间件使用代码而不是在 Web.config 中进行配置
- 管道分支使你可以不仅基于 URL,而且基于请求标头、查询字符串等向特定中间件发送请求。
中间件与模块非常相似:
-
原则上针对每个请求进行调用
-
能够通过不将请求传递到下一个中间件来使请求短路
-
能够创建自己的 HTTP 响应
中间件和模块采用不同顺序进行处理:
-
中间件的顺序基于它们插入请求管道中的顺序,而模块的顺序主要基于 System.Web.HttpApplication 事件。
-
针对响应的中间件顺序与针对请求的顺序相反,而模块的顺序对于请求和响应是相同的