ASP.Net Core下的HTTP请求处理过程

ASP.Net Core是一个自宿主的程序,里面含有Program类。BuildWebHost方式是程序最先开始执行的方法。类似于Main函数体

 public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .Build();

IWebHost是通过IWebHostBuilder构建的。之后使用UseStartup来进入程序启动阶段。之后来到StartUp.cs类文件中,有两个方法。IConfiguration和Configure

IConfiguration首先执行,该方法主要目的是通过IServiceConllection注入对象,Configura方法主要作用是处理中间件。

中间件Middleware 它通过IApplicationBuilder来调用,调用的方式有App.Run  App.Use  App.Map这三种方法使用。

中间件携带RequestDelegate委托,该委托包含HttpContext参数。所以中间件可以对请求进行操作,列如改变路由等操作,之后根据路由解析到相应页面进行处理后,携带Response返回客户端。

有张图找不到了。。很形象的描述了Asp.NetCore的Http请求管道。个人觉得图像才会让人记忆深刻。等找到我在补上去。我觉得这些只不过浅显的看懂表面上的东西,深层的东西还需要自己挖源码阿~

原文地址:https://www.cnblogs.com/LahGo/p/8934115.html

时间: 2024-10-12 07:32:31

ASP.Net Core下的HTTP请求处理过程的相关文章

Asp.Net Core下的两种路由配置方式

与Asp.Net Mvc创建区域的时候会自动为你创建区域路由方式不同的是,Asp.Net Core下需要自己手动做一些配置,但更灵活了. 我们先创建一个区域,如下图 然后我们启动访问/Manage/Home/Index 发现是404没有找到该页面,因为我们还没有为其配置路由,下面使用两种配置区域路由的方式 1.通过配置MapRoute app.UseMvc(routes => { routes.MapRoute( name: "default", template: "

Asp.Net Core下使用swagger生成api文档

目录 一.前期准备 二.配置Swagger 三.参考 .Net Core中有两个集成NSwag的包,分别为Swashbuckle和NSwag.两者的配置大同小异.这里以NSwag为例. 一.前期准备 1.初始化asp.net core 测试项目 新建asp.net core项目,此处略过: 新建apicontroller,并编写测试代码: [Route("api/[controller]")] [ApiController] public class UserApiController

asp.net core下的使用Application Insights

在Visudio Studio中,新建asp.net core可以内置Application Insights.Application Insights可以帮助我们分应web应用的性能,以至于我们来优化我们的应用,本文是step by step篇. 代码端 新建 asp.net core项目(asp.net core 1.1版本) 第三步配置设置,可以选择自己azure上的资源组. (注:目前asp.net core新建项目是1.0版本,可以在nuget中升级成1.1版本) 设置Starup.c

ASP.NET CORE下用盛派微信SDK取微信openid

用CORE做项目用到微信的相关东西,听说那个盛派微信SDK很火,自己弄了下,只是简单的用用,用户访问页面取微信openid 原文地址:https://www.cnblogs.com/niunan/p/9296959.html

使用VS Code开发asp.net core (下)

第一部分: https://www.cnblogs.com/cgzl/p/8450179.html 本文是基于Windows10的. Debugging javascript 打开wwwroot/js/site.js, 写一段简单的js代码: (function ($) { $(document).ready(function () { $('#myButton').on('click', function() { alert('Hello world!'); }); }); })(jQuery

ASP.NET Core下Ocelot的简单使用

一.创建demo项目 1.新建webapi项目,命名为“DemoProject”,去掉HTTPS勾选 1 using Microsoft.AspNetCore.Mvc; 2 using System.Collections.Generic; 3 4 namespace DemoProject.Controllers 5 { 6 [Route("api/[controller]/[action]")] 7 [ApiController] 8 public class DefaultCon

Centos下使用Docker部署asp.net core项目

本文讲述 CentOS 系统 Docker 中部署 asp.net core开源项目 abp 的过程 步骤 1. 拉取 asp.net core 基础镜像 docker pull microsoft/aspnetcore 2.编写 Dockerfile 文件 FROM docker.io/microsoft/aspnetcore WORKDIR /app COPY . . ENTRYPOINT ["dotnet", "QXD.BBS.Web.Mvc.dll"] 3.

ASP.NET Core解说之Middleware(中间件)

一.什么是中间件 中间件是汇集到以处理请求和响应的一个应用程序管道的软件. 每个组件: 可以选择是否要将请求传递到管道中的下一个组件. 可以在请求管道的下一个组件调用之前和之后执行相关业务操作. 二.使用 IApplicationBuilder 创建中间件管道 ASP.NET Core请求管道由一系列请求委托组成,这些请求委托按序一个接一个被调用,如图所示的顺序组成(按照黑色箭头的顺序执行): 每个委托可以执行相关操作在下一个委托的之前和之后. 委托还可以决定不将请求传递给委托链的下一个委托(我

初识ASP.NET Core 1.0

本文将对微软下一代ASP.NET框架做个概括性介绍,方便大家进一步熟悉该框架. 在介绍ASP.NET Core 1.0之前有必要澄清一些产品名称及版本号.ASP.NET Core1.0是微软下一代ASP.NET 框架,在这之前ASP.NET版本稳定在ASP.NET  4.6,对应的.NET Framework版本为.net 4.6.1. 曾经一段时间微软将下一代ASP.NET 命名为ASP.NET 5和MVC 6,在ASP.NET 5 is dead – Introducing ASP.NET