你的位置:首页 > 软件开发 > ASP.net > ASP.NET Core

ASP.NET Core

发布时间:2016-08-04 21:00:06
今天来讨论一个ASP.NET Core 很重要概念管道和中间件,在ASP.NET Core中,针对HTTP请求采用pipeline也就是通常说的管道方式来处理,而管道容器内可以挂载很多中间件(处理逻辑)“串联”来处理HTTP请求,每一个中间 ...

  今天来讨论一个get='_blank'>ASP.NET Core 很重要概念管道和中间件,在ASP.NET Core中,针对HTTP请求采用pipeline也就是通常说的管道方式来处理,而管道容器内可以挂载很多中间件(处理逻辑)“串联”来处理HTTP请求,每一个中间件都有权决定是否需要执行下一个中间件,或者直接做出响应。这样的机制使得HTTP请求能够很好的被层层处理和控制,并且层次清晰处理起来甚是方便。 示意图如下:

  ASP.NET Core

  为了再次说明管道和中间件的概念,举一个官方给出的权限验证的例子,中间件A,B分别按顺序挂载在管道容器中,A为权限验证中间件,只有通过A的权限验证才能执行B,如果没有通过A的验证,A有权中断管道处理直接返回相应的错误提示例如401等。这样必须由上一节点来调用的串行递归执行方式就是pipeline,而每一个节点就是中间件或者叫中间组件。现在我们来看看如何在ASP.NET Core中使用中间件和管理自己的HTTP管道


 

  环境配置与Startup

  在了解中间件之前我们需要先知道Startup这个类具体运作方式,我们以下面这段代码为例:

  /// <summary>  /// web宿主的入口类  /// </summary>  public class Startup  {    //加入服务项到容器, 这个方法将会被runtime调用    public void ConfigureServices(IServiceCollection services)    {    }        /// <summary>    /// 配置HTTP请求管道    /// </summary>    /// <param name="app">被用于构建应用程序的请求管道 只可以在Startup中的Configure方法里使用</param>    /// <param name="env">提供了访问应用程序属性,如环境变量</param>    /// <param name="loggerFactory">提供了创建日志的机制</param>    public void Configure(IApplicationBuilder app,IHostingEnvironment env,ILoggerFactory loggerFactory)    {      loggerFactory.AddConsole();             if (env.IsDevelopment()) //根据配置的环境为开发环境,则会配置抛出异常错误界面      {        app.UseDeveloperExceptionPage(); //抛出详细的异常错误界面      }      //管道断路      app.Run(async (context) =>      {        await context.Response.WriteAsync("Hello World!");      });    }  }

原标题:ASP.NET Core

关键词:ASP.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。