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

服务承载系统: 承载服务启动流程

在正式介绍Host类型的具体实现之前,我们得先来认识两个相关的类型,其中一个是承载相关配置选项的HostOptions。...当Host对象的StopAsync方法在执行过程中,如果它成功关闭了所有承载的服务,注册IHostLifetime服务的StopAsync方法会被调用。...当所有承载的服务正常启动之后,ApplicationLifetime对象的NotifyStarted方法会被调用,此时订阅者会接收到应用启动的通知。...有一点需要着重指出:代表承载服务的所有IHostedService对象是“逐个(不是并发)”被启动的,而且只有等待所有承载服务全部被启动之后,我们的应用程序才算成功启动了。...,我们创建了一个HostBuilder对象,并通过调用ConfigureServices方法注册了需要承载的FakeHostedService服务。

1.3K60

服务承载系统: 承载服务启动流程

对象,然后利用二者创建出代表承载上下文的HostBuilderContext对象。...步骤一、创建HostBuilderContext 由于很多依赖服务都是针对当前承载上下文进行注册的,所以Build方法首要的任务就是创建出作为承载上下文的HostBuilderContext对象。...一个HostBuilderContext对象由承载针对宿主配置的IConfiguration对象和描述当前承载环境的IHostEnvironment对象组成,但是后者提供的环境名称、应用名称和内容文件根目录路径可以通过前者来指定...从如图10-11所示的输出结果表明应用程序当前的承载环境确实与基于宿主的配置一致。(S1009) ?...如果直接利用模板来创建一个ASP.NET Core应用,我们会发现生成的程序会采用如下的服务承载方式。

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

ASP.NET Core应用基本编程模式:基于承载环境的编程

基于IHostBuilder/IHost的承载系统通过IHostEnvironment接口表示承载环境,我们利用它不仅可以得到当前部署环境的名称,还可以获知当前应用的名称和存放内容文件的根目录路径。...[本文节选自《ASP.NET Core 3框架揭秘》第11章, 更多关于ASP.NET Core的文章请点这里] 目录 一、IWebHostEnvironment 二、通过配置定制承载环境 三、针对环境的编程...IWebHostEnvironment对象承载的4个与承载环境相关的属性(ApplicationName、EnvironmentName、ContentRootPath和WebRootPath)可以通过配置的方式进行定制...ASP.NET Core编程模式[1]:管道式的请求处理 ASP.NET Core编程模式[2]:依赖注入的运用 ASP.NET Core编程模式[3]:配置多种使用形式 ASP.NET Core编程模式...[4]:基于承载环境的编程 ASP.NET Core编程模式[5]:如何放置你的初始化代码

69210

ASP.NET Core 6框架揭秘实例演示:ASP.NET Core应用承载方式的变迁

ASP.NET Core应用本质上就是一个由中间件构成的管道,承载系统将应用承载于一个托管进程中运行起来,其核心任务就是将这个管道构建起来。...从设计模式的角度来讲,“管道”是构建者(Builder)模式最典型的应用场景,所以ASP.NET Core先后采用的三种承载方式都是采用这种模式。...(本篇提供的实例已经汇总到《ASP.NET Core 6框架揭秘-实例演示版》) [S1501]基于IWebHost/IWebHostBuilder的应用承载方式(源代码) [S1502]将初始化设置定义在...的应用承载方式 ASP.NET Core Core 1.X/2.X采用的承载模型以IWebHostBuilder和IWebHost为核心。.../IHost的服务承载系统中之后,也许微软还是意识到Web应用和后台服务的承载方式还是应该加以区分,而且它们采用的SDK都不一样(ASP.NET Core应用采用的SDK为“Microsoft.NET.Sdk.Web

98320

服务承载系统: 承载长时间运行的服务

这里的部署环境在承载系统中统称为承载环境(Hosting Environment)。一般来说,不同的承载环境往往具有不同的配置选项,下面演示如何为不同的承载环境提供相应的配置选项。...我们可以将这里所谓的“应用”理解为承载的服务,也就是说,采用这种方式注册的配置是为承载的服务使用的。...HostBuilderContext上下文对象得到当前的承载环境。...五、日志 在具体的应用开发时不可避免地会涉及很多针对“诊断日志”的编程,下面演示在通过承载系统承载的应用中如何记录日志。...由于承载系统自身在进行服务承载过程中也会输出一些日志,所以它们也会输出到控制台上。 ? 如果对输出的日志进行过滤,可以将过滤规则定义在配置文件中。

53160

服务承载系统: 承载长时间运行的服务

借助.NET Core提供的承载(Hosting)系统,我们可以将任意一个或者多个长时间运行(Long-Running)的服务寄宿或者承载于托管进程中。...ASP.NET Core应用仅仅是该承载系统的一种典型的服务类型而已,任何需要在后台长时间运行的操作都可以定义成标准化的服务并利用该系统来承载。...一、承载长时间运行服务 一个ASP.NET Core应用本质上是一个需要长时间运行的服务,开启这个服务是为了启动一个网络监听器。...除了这种最典型的承载服务,我们还有很多其他的服务承载需求,下面通过一个简单的实例来演示如何承载一个服务来收集当前执行环境的性能指标 我们演示的承载服务会定时采集并分发当前进程的性能指标。...二、依赖注入 服务承载系统无缝整合了依赖注入框架。从上面给出的代码可以看出,针对承载服务的注册实际上就是将它注册到依赖注入框架中。

88560

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

(本篇提供的实例已经汇总到《ASP.NET Core 6框架揭秘-实例演示版》) [S1513]基于环境变量的配置初始化(源代码) [S1514]以键值对形式读取和修改配置(源代码) [S1515]...注册配置源(利用IWebHostBuilder)(源代码) [S1516]注册配置源(Minimal API)(源代码) [S1517]默认的承载环境(源代码) [S1518]通过配置定制承载环境...在ASP.NET Core应用中,我们可以通过调用定义在IWebHostBuilder接口的GetSetting方法和UseSetting方法达到相同的目的。...ASP.NET Core应用会将所有的内容文件存储在同一个目录下,这个目录的绝对路径通过IWebHostEnvironment接口的ContentRootPath属性来表示,而ContentRootFileProvider...图2 利用环境变量定义承载环境 [S1519]利用WebApplicationOptions定制承载环境 承载环境除了可以采用利用上面演示的两种方式进行设置外,我们也可以使用如下这个WebApplicationOptions

78130

ASP.NET Core 6框架揭秘实例演示:如何承载你的后台服务

借助 .NET提供的服务承载(Hosting)系统,我们可以将一个或者多个长时间运行的后台服务寄宿或者承载我们创建的应用中。...任何需要在后台长时间运行的操作都可以定义成标准化的服务并利用该系统来承载ASP.NET Core应用最终也体现为这样一个承载服务。...(本篇提供的实例已经汇总到《ASP.NET Core 6框架揭秘-实例演示版》) [S1401]利用承载服务收集性能指标(源代码) [S1402]依赖注入的应用(源代码) [S1403]配置选项的应用...一般来说,不同的承载环境往往具有不同的配置选项,下面我们将演示如何为不同的承载环境提供相应的配置选项。...由于承载系统自身在进行服务承载过程中也会输出一些日志,所以它们也会输出到控制台上。

42510

ASP.NET Core 6框架揭秘实例演示:如何承载你的后台服务

借助 .NET提供的服务承载(Hosting)系统,我们可以将一个或者多个长时间运行的后台服务寄宿或者承载我们创建的应用中。...任何需要在后台长时间运行的操作都可以定义成标准化的服务并利用该系统来承载ASP.NET Core应用最终也体现为这样一个承载服务。...(本篇提供的实例已经汇总到《ASP.NET Core 6框架揭秘-实例演示版》) [S1407]利用IHostApplicationLifetime对象关闭应用(源代码) [S1408]与第三方依赖注入框架的整合...服务来关闭整个承载应用。...图2所示的输出结果表明,应用程序当前的承载环境与基于宿主的配置是一致的。 图2 利用配置来初始化承载环境

67020

Mesh网,离承载还有多远

一些承载网规建人员,对SPN/IPRAN等主流承载网的拓扑组网规范、设计规则过多过复杂,颇有微词。如成环率、各层长环率、双归与否、环内及跨环异侧不可同路由、超大汇聚节点,等等。...有没有一种理想的承载网拓扑,既能满足运营商对优质网络的要求,又能解决设计建设的难题呢? 答案就是Mesh网。 Mesh网,或将成为承载网拓扑结构未来的演进方向。...█ 承载网拓扑的发展史 首先,我们回顾一下光网络诞生以来的组网方式、主要设备及上层业务的变迁: 承载网规模的快速扩大,是拓扑组网方式不断变化的一个重要原因。...█ Mesh化承载网的应用展望 针对需要Mesh化承载网的场景,这里试着分类列举一些,并展望其对网络智能化和6G需求的价值。...本文作者:中兴通讯 承载网方案经理 吴涛

11010

服务承载系统:总体设计

通过前面的实例演示,我们知道ConfigureHostConfiguration方法涉及的配置主要是在服务承载过程中使用的,是针对服务宿主的配置;ConfigureAppConfiguration方法设置的则是供承载的...HostBuilderContext携带的上下文主要包含两个部分:其一,通过调用ConfigureHostConfiguration方法设置的针对宿主的配置;其二,当前的承载环境。...如果针对配置系统的设置与当前承载上下文无关,我们可以调用如下这个同名的扩展方法,该方法提供的参数依旧是一个Action类型的委托。...任何一个应用总是针对某个具体的环境进行部署的,我们将承载服务的部署环境称为承载环境。...开发、预发和产品是三种最为典型的承载环境,如果采用“Development”、“Staging”和“Production”来对它们进行命名,我们针对这三种承载环境的判断就可以利用如下三个扩展方法(IsDevelopment

60850

服务承载系统:总体设计

前面的实例演示了服务承载的基本编程模式,接下来我们从设计的角度来重新认识服务承载模型。...当服务承载应用程序关闭的时候,作为服务宿主的IHost对象会被关闭,由它承载的每个IHostedService服务对象的StopAsync方法也随之被调用。....NET Core的依赖注入框架,在服务承载过程中所需的依赖服务,包括承载服务自身和它所依赖的服务均由此框架提供,承载服务注册的本质就是将对应的IHostedService实现类型或者实例注册到依赖注入框架中...由于承载服务大都需要长时间运行直到应用被关闭,所以针对承载服务的注册一般采用Singleton生命周期模式。...承载系统为承载服务的注册定义了如下这个AddHostedService扩展方法。

74650

【客户案例】AIGC承载网设计实践

支持 RoCE 实现无损以太网 整网方案设计的思路 高性能 AIGC承载网络需要具备高宽带的特性,以支持快速的数据传输和处理。...生成内容可能涉及大规模的文本、图像或视频数据,因此需要具备高带宽的网络连接,以便快速传输数据到计算资源节点进行处理;此外,AIGC承载网络需要实现低时延的要求,以确保生成内容的实时性和响应性。...大规模 AIGC承载网络需要能够处理大量的用户请求和任务,并同时支持多个用户的并发访问。因此,网络架构需要具备高度的可扩展性和负载均衡能力。...高可用 AIGC承载网络需要具备高可用性,以确保服务的连续性和稳定性。由于AIGC是基于人工智能技术的,其生成过程可能需要较长的时间和大量的计算资源。

30330
领券