配置Asp.NET Core请求处理管道
一.Run方法
public static void Run(this IapplicationBuilder app,RequestDelegate hanler);是一个扩展方法
终端中间件:
app.Run(async(context)=>
{
await context.Response.WriteAsync("Hello World");
});
context是HttpContext的一个实例
终端中间件只能有一个,若是有多个,只会运行第一个终端中间件
2.调用下一个中间件
app.Use(async (context)=>
{
//配置响应内容的格式
context.Response.ContentType="text/plian;charset=utf-8";
logger.LogInformation("第一次");
await context.Reponse.WriteAsync("你好");
//next()是一个Fun<Task>next的委托,用来调用下一个中间件
await next();
logger.LogInfomation("响应");
});
app.Run(async(context)=>
{
logger.LogInfomation("传入请求你");
await context.Response.WriteAsync("你好呀");
});
总结:请求处理的管道:先从use中间件===>中间件====>use中间件 或者 传入请求==>传入请求==>处理并响应请求==>传出响应请求==>处理响应请求。所有的请求处理都会在每个中间件调用next()方法之前触发。依次穿过管道,到了终端中间件时会发生逆转传递请求。