首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

学习ASP.NET Core, 怎能不了解请求处理管道: 管道是如何随着WebHost的开启被构建出来的?

注册的服务器和中间件共同构成了ASP.NET Core用于处理请求的管道, 这样一个管道是我们启动作为应用宿主的WebHost时构建出来的。...的创建     几个常用的扩展方法 一、WebHost 顾名思义,WebHost被作为Web应用的宿主,应用的启动和关闭都是通过启动或者关闭对应WebHost的方式来实现的。...依赖注入只要体现在:ASP.NET Core框架以及应用程序会根据需要注册一系列的服务,这些服务会在WebHost启动的时候被用来创建一个ServiceProvider对象,管道进行请求处理过程所需的任何服务对象都可以从这个...接下来我们就来着重聊聊WebHost开启过程中都做了些什么。总的来说,WebHost的整个开启过程大体上可以分为如下三个步骤: 注册服务:获取Startup对象并利用它完成服务的注册。...服务器被成功开启之后,我们利用ApplicationLifetime对外发送应用启动的通知。

91780
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ASP.NET Core 2.2 : 二十二. 多样性的配置方式

    讲应用系统的启动的时候说过,配置是Program文件的CreateDefaultBuilder方法中被加载的,可以在其之后继续通过ConfigureAppConfiguration方法继续设置。...,第三个设置当此文件被修改是否自动重新加载该文件。...三、命令行 通过命令行启动应用的时候,可以命令行中通过添加Key-Value的方式作为配置的数据来源,例如执行如下命令启动应用: dotnet run key1=value1 key2=value2...四、环境变量 WebHost.CreateDefaultBuilder(args)方法中,除了会加载命令行参数,还会加载环境变量中的数据。此处的环境变量包括系统的环境变量,例如下图2 ?...除了读取系统的环境变量,也可以项目的属性中添加,例如在项目的属性中添加,例如下图3: ?

    62620

    ASP.NET Core 2.2 : 二十二. 多样性的配置方式

    讲应用系统的启动的时候说过,配置是Program文件的CreateDefaultBuilder方法中被加载的,可以在其之后继续通过ConfigureAppConfiguration方法继续设置。...,第三个设置当此文件被修改是否自动重新加载该文件。...三、命令行 通过命令行启动应用的时候,可以命令行中通过添加Key-Value的方式作为配置的数据来源,例如执行如下命令启动应用: dotnet run key1=value1 key2=value2...四、环境变量 WebHost.CreateDefaultBuilder(args)方法中,除了会加载命令行参数,还会加载环境变量中的数据。此处的环境变量包括系统的环境变量,例如下图2 ?...除了读取系统的环境变量,也可以项目的属性中添加,例如在项目的属性中添加,例如下图3: ?

    57320

    Asp.Net Core轻松入门之WebHost的配置

    本篇文章中,我来讲一讲如何利用WebHost来加载配置文件和设置启动的Url 在前面的文章中讲过,ASP.Net Core应用程序会自动加载appsettings.json中的配置文件,那么如果配置文件不是写在...新建,因为首先添加一个名为json的json文件,文件内容如下: { "connectionString": { "defaultConnectionString": "server=127.0.0.1...下面我们介绍利用webHost修改启动的url  其实很简单,只需要再Pragram.ca中修改以下代码: public static IWebHost BuildWebHost(string[]....UseStartup() .Build(); 那么该网页就会再8080端口开始侦听了  ,要注意的是,修改之后,程序启动不会自动调用默认浏览器打开该网页...该项目完整的github地址:https://github.com/liuzhenyulive/WebHost 有任何疑问可以再文章下方给我留言

    1K40

    通过重建Hosting系统理解HTTP请求ASP.NET Core管道中的处理流程:管道是如何构建起来的?

    我们模拟管道中将这个接口作了如下的简化,仅仅保留了用于启动当前WebHost的Start方法。随着WebHost因Start方法的调用而被开启,整个管道也随之被建立起来。...WebHost启动的时候需要将整个管道构建出来,管道创建过程中所需的所有信息都来源于作为创建者的WebHostBuilder,后者采用“依赖注入”的形式来为创建的WebHost提供这些信息。...除了向创建的WebHost提供一个ServiceProvider之外,WebHostBuilder还需要将一些配置提供给WebHost,配置数据的设置可以通过调用UseSetting方法来完成。...启动服务器之前,我们必须为它指定相应的监听地址。...调用Start方法启动服务器的时候需要指定一个HttpApplication对象作为参数,后者代表由所示注册中间件构成的管道,它可以通过调用ApplicationBuilder的Build方法创建出来

    4.3K50

    ASP.NET Core appsettings.json文件(9)《从零开始学ASP.NET CORE MVC》:

    以前的ASP.NET版本中,我们将应用程序配置设置(例如数据库连接字符串)存储web.config文件中。 Asp.Net Core 中, 应用程序配置设置可以来自以下不同的配置源。...我们可以对文件进行如下修改,补充一个MyKey的键值对: { "Logging": { "LogLevel": { "Default": "Warning" } },...launchsetting 静态类WebHost的CreateDefaultBuilder()方法应用程序启动时会自动去调用,按特定顺序读取配置源。...ConfigureAppConfiguration()方法 https://github.com/aspnet/MetaPackages/blob/release/2.2/src/Microsoft.AspNetCore/WebHost.cs...检查文件,您将看到,以下是读取各种配置源的默认顺序 appsettings.json, appsettings.

    1.4K20

    ASP.NET Core 6框架揭秘实例演示:配置与承载环境的应用

    代表承载应用的WebApplication构建出来,其Configuration属性返回的IConfiguration对象上同样包含着相同的配置。...ASP.NET Core应用中,我们可以通过调用定义IWebHostBuilder接口的GetSetting方法和UseSetting方法达到相同的目的。...") == "abc"); Debug.Assert(builder.WebHost.GetSetting("bar") == "xyz"); IConfiguration configuration...根据不同的目的可以将同一个应用部署到不同的环境中,不同环境中部署的应用往往具有不同的设置。默认情况下,环境的名称为“Production”。...对于上面创建的这个演示程序,我们现在换一种方式启动它。如图2所示,执行“dotnet run”命令启动程序之前,我们为承载环境的四个属性设置了对应的环境变量。

    79830

    聊聊ASP.NET Core默认提供的这个跨平台的服务器——KestrelServer

    比如我们可以将KestrelServer的相关配置定义如下一个JSON文件中。...从命名的角度来看,ApplicationLifetime貌似是对当前应用生命周期的描述,而实际上它存在的目的仅仅是应用启动和关闭(只要是关闭)时对相关组件发送通知而已。...IApplicationLifetime接口具有三个CancellationToken类型的属性(ApplicationStarted、ApplicationStopping和ApplicationStopped),我们可以利用它们是否已经被取消...如果管道处理请求时发生未被处理的异常,管道的Sever会调用ApplicationLifeTime对象的StopApplication方法向WebHost发送关闭应用的通知以便后者执行一些回收释放工作...如果没有一个合法的监听地址被添加到这个 ServerAddressesFeature对象的地址列表中,WebHost会将显式指定的地址(一个或者多个)添加到该列表中。

    97870

    ASP.NET Core轻松入门之Configure中IHostingEnvironment和IApplicationLifetime的使用

    StratUp.cs的Configure方法中,除了 常用的参数除了IApplicationBuilder和在我上一篇文章中提到的Iconfiguration点击打开链接外  还有 IHostingEnvironment...没错,我们可以看到这基本是一些该应用程序的环境信息,包括程序名称信息,根目录,环境名称 等等基本信息,我们以该程序为例输出该程序的这些信息看看。...; }); } 给应用程序再启动,停止中,停止,分别绑定了控制台输出事件,我们运行看看输出结果: ?...可以看到  再控制台中  分别再应用程序的启动  关闭中  关闭后进行了内容的输出,所以我们得出结论  IApplicationLifetime   该方法是用来绑定应用程序的运行时事件的。...该项目的完整github代码:https://github.com/liuzhenyulive/WebHost 有任何疑问欢迎再文章下方留言。

    2.1K50

    基于ASP.NET core的MVC站点开发笔记 0x01

    dotnet --version查看输出是否安装成功。...服务注册 上面的IConfiguration可以直接使用,是因为IConfiguration服务已经自动注册过了。...中间件和管道 中间件是一种用来处理请求和响应的组件,一个web应用可以有多个中间件,这些中间件共同组成一个管道,每次请求消息进入管道都会按中间件顺序处理对应请求数据,然后响应结果原路返回: ?...logger.LogInformation(welcome); await context.Response.WriteAsync(welcome); }); } 重新启动可正常访问到...: Use UseWhen Map MapWhen Run Use和UseWhen注册的中间件执行完毕之后可以回到原来的管道上; Map和MapWhen可以新的管道分支上注册中间件,不能回到原来的管道上

    87910

    Asp.Net Core Web应用程序—探索

    其中wwwroot文件夹很特别,图标和其他的文件夹不一样,不过依然可以修改他的名称,修改名称,文件夹图标会变回普通的图标,不过既然是特殊图标,想来一定有特殊意义,我们稍后再研究,先接着向下浏览Page...调查到这里,我做大致可以猜出了Program.cs是干什么的了——它应该是用来启动Kestrel 这个服务器的。 现在我打开Program.cs,发现如下代码。...然后,我们看到了,Main函数使用BuildWebHost函数返回的IWebHost的实例,执行其下的Run方法。 到此,已经很明确了,Program就是启动服务器用的。...可以看到ConfigureServices里只调用了services.AddMvc(),查看官方介绍,原来这个方法是将Mvc服务添加到指定的服务集合中。...删除了Mvc服务,我们会发现,网站启动起来了,但是并没有正常访问我们的主页。

    1.3K20
    领券