.Net Core 入门(七)中间件的执行顺序

本文通过示例代码详细解析了.NetCore中管道中间件的执行顺序,展示了请求从进入应用到完成响应的全过程,并解释了中间件如何依次处理请求及响应。

.NetCore 管道中间件执行顺序

在这里插入图片描述
大家可以从图片中看到执行顺序就是在第一个中间件中执行第一步,然后执行第二个中间件的第一步,然后执行第三个中间件,之后返回执行第二个中间件的第二部在执行第一个中间件的第二部,整体像绕了一个圈子。

public void Configure(IAppliactionBuilder app,IWebEnvironment env,ILogger<Startup> logger)
{
   if(env.IsDevelopment()){ app.UseDevelopExceptionPage();};
   app.Use(async(context,next)=>{ logger.LogInformation("M1request");await next(); logger.LogInformation("M1response");});
   app.Use(async(context,next)=>{ logger.LogInformation("M2request");await next(); logger.LogInformation("M2response");});
   app.Run(async context=>{ context.Response.WriteAsync("M3"); logger.LogInformation("M3处理请求"); });
}

### ASP.NET Core 入门学习教程推荐 对于希望学习 ASP.NET Core 的开发者,以下是一个全面的教程和资源指南。 #### ### 1. 学习资源推荐 一个完整的 ASP.NET Core 学习资源包已经整理完毕,包含视频教程、电子书和代码示例。此资源包总大小为 24.12GB,覆盖了从基础知识到高级开发技巧的内容[^1]。资源地址为:[https://gitcode.com/Open-source-documentation-tutorial/76bfe](https://gitcode.com/Open-source-documentation-tutorial/76bfe)。 此外,官方 GitHub 仓库提供了 ASP.NET Core 的核心源代码和技术文档,适合深入研究框架实现细节。项目地址为:[https://gitcode.com/gh_mirrors/as/aspnetcore](https://gitcode.com/gh_mirrors/as/aspnetcore)[^1]。 #### ### 2. 开发环境搭建 在开始学习之前,需要确保开发环境已正确配置: - 安装 .NET SDK:可以从 [https://dotnet.microsoft.com/download](https://dotnet.microsoft.com/download) 下载并安装最新版本的 .NET SDK。 - 使用 Visual Studio 或 Visual Studio Code:Visual Studio 是 Microsoft 推荐的 IDE,而 Visual Studio Code 则是一个轻量级的选择,适合跨平台开发。 #### ### 3. 核心概念与架构 ASP.NET Core 基于 MVC(Model-View-Controller)架构模式,将应用程序分为三个主要组件组:模型、视图和控制器[^2]。这种分离有助于提高代码的可维护性和扩展性。 #### ### 4. 示例项目 以下是一个简单的 ASP.NET Core 控制器示例,展示如何返回 JSON 数据: ```csharp using Microsoft.AspNetCore.Mvc; namespace ExampleApp.Controllers { [ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { [HttpGet] public IActionResult Get() { var forecast = new[] { "Sunny", "Cloudy", "Rainy" }; return Ok(forecast); } } } ``` 此代码定义了一个名为 `WeatherForecast` 的控制器,并提供了一个 GET 方法来返回天气预报数据。 #### ### 5. 路由机制 ASP.NET Core MVC 的路由机制允许开发者灵活地定义 URL 模式和请求处理逻辑。路由工作原理概述包括定义路由模板、匹配请求路径以及将参数传递给控制器动作[^3]。 #### ### 6. 托管模式与中间件 在 ASP.NET Core 中,可以通过设置 `AspNetCoreHostingModel` 属性来选择托管模式。例如,使用 InProcess 模式可以提高性能,而 OutOfProcess 模式则更灵活[^4]。 中间件是 ASP.NET Core 应用程序请求处理管道的重要组成部分。它们可以按顺序执行,处理请求或响应,甚至短路整个管道。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值