ASP.NET Core教程-Pipeline(请求管道)
更新记录
转载请注明出处:
2022年11月20日 发布。
2022年11月16日 从笔记迁移到博客。
请求管道是什么#
类似于水的管道,有流进流出。在ASP.NET Core
中Server
进行监听用户的请求,然后请求被处理为HttpContext
上下文对象,最终被Application
处理为Respose
,这个过程通过请求管道来完成。请求管道由多个中间件组成。
用户如果要获取 Web页面或其他数据,可以发送一个HTTP请求到服务器,过程中会经过一个个中间件,获取结果之后,反向通过中间件直至返回给用户。这就是ASP.NET Core的一次请求的接收与处理过程。这一个个中间件组成了ASP.NET Core的请求处理管道,整条管道就像高速公路,使请求从公路的一侧行驶到达目的地,又从公路的另一侧返回出发地。在请求发起前,这条管道就已经构建完成,管道的构建发生在应用启动阶段。
请求管道中的中间件处理过程#
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
namespace Demo.WebAPI
{
public class SampleMiddleware
{
//下一个中间件的引用
private readonly RequestDelegate _next;
//注入下一个中间件
public RequestCultureMiddleware(RequestDelegate next)
{
_next = next;
}
//执行中间件
public async Task InvokeAsync(HttpContext context)
{
//region 执行中间件代码1
//......
//调用下一个中间件
await _next(context);
//region 执行中间件代码2
//......
}
}
}
其中,第一个region就是进入第一个中间件时的操作语句,中间的_next(context)则是出了当前中间件进入下一个中间件,最后一个#egion则是从进入的下一个中间件回到先前中间件时的操作。以高速公路为例,一个中间件相当于一个地区,去和回的行程一共会经过这个地区两次,所以每个中间件可以有两次处理请求的机会。
注册中间件到请求管道#
请求经过各个中间件的创建中间件之后,需要将其添加到请求处理管道才能生效,此过程可由 Startup中的Configure 方法实现,这个方法可供我们按照一定顺序将一系列中间件构建成请求处理管道。
app.UseMiddleware<SomeMiddleWare>();
作者:重庆熊猫
出处:https://www.cnblogs.com/cqpanda/p/16894834.html
版权:本作品采用「不论是否商业使用都不允许转载,否则按3元1字进行收取费用」许可协议进行许可。
本文来自博客园,作者:重庆熊猫,转载请注明原文链接:https://www.cnblogs.com/cqpanda/p/16894834.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器