当前位置: 首页 > news >正文

江西做网站的建企业网站要多少钱

江西做网站的,建企业网站要多少钱,深圳建设集团网站首页,专门型网站1. 引言 对于ASP.NET Core应用程序来说#xff0c;我们要记住非常重要的一点是#xff1a;其本质上是一个独立的控制台应用#xff0c;它并不是必需在IIS内部托管且并不需要IIS来启动运行#xff08;而这正是ASP.NET Core跨平台的基石#xff09;。ASP.NET Core应用程序拥… 1. 引言 对于ASP.NET Core应用程序来说我们要记住非常重要的一点是其本质上是一个独立的控制台应用它并不是必需在IIS内部托管且并不需要IIS来启动运行而这正是ASP.NET Core跨平台的基石。ASP.NET Core应用程序拥有一个内置的Self-Hosted自托管的Web ServerWeb服务器用来处理外部请求。 不管是托管还是自托管都离不开Host宿主。在ASP.NET Core应用中通过配置并启动一个Host来完成应用程序的启动和其生命周期的管理如下图所示。而Host的主要的职责就是Web Server的配置和Pilpeline请求处理管道的构建。 这张图描述了一个总体的启动流程从上图中我们知道ASP.NET Core应用程序的启动主要包含三个步骤 CreateDefaultBuilder()创建IWebHostBuilder Build()IWebHostBuilder负责创建IWebHost Run()启动IWebHost 所以ASP.NET Core应用的启动本质上是启动作为宿主的WebHost对象。 其主要涉及到两个关键对象IWebHostBuilder和IWebHost它们的内部实现是ASP.NET Core应用的核心所在。下面我们就结合源码并梳理调用堆栈来一探究竟 2. 宿主构造器IWebHostBuilder 在启动IWebHost宿主之前我们需要完成对IWebHost的创建和配置。而这一项工作需要借助IWebHostBuilder对象来完成的ASP.NET Core中提供了默认实现WebHostBuilder。而WebHostBuilder是由WebHost的同名工具类Microsoft.AspNetCore命名空间下中的CreateDefaultBuilder方法创建的。 从上图中我们可以看出CreateDefaultBuilder()方法主要干了六件大事 UseKestrel使用Kestrel作为Web server。 UseContentRoot指定Web host使用的content root内容根目录比如Views。默认为当前应用程序根目录。 ConfigureAppConfiguration设置当前应用程序配置。主要是读取 appsettinggs.json 配置文件、开发环境中配置的UserSecrets、添加环境变量和命令行参数 。 ConfigureLogging读取配置文件中的Logging节点配置日志系统。 UseIISIntegration使用IISIntegration 中间件。 UseDefaultServiceProvider设置默认的依赖注入容器。 创建完毕WebHostBuilder后通过调用UseStartup()来指定启动类来为后续服务的注册及中间件的注册提供入口。 3. 宿主IWebHost 在ASP.Net Core中定义了IWebHost用来表示Web应用的宿主并提供了一个默认实现WebHost。宿主的创建是通过调用IWebHostBuilder的Build()方法来完成的。那该方法主要做了哪些事情呢我们来看下面这张【ASP.NET Core启动流程调用堆栈】中的黄色边框部分 其核心主要在于WebHost的创建又可以划分为三个部分 构建依赖注入容器初始通用服务的注册BuildCommonService(); 实例化WebHostvar host new WebHost(...); 初始化WebHost也就是构建由中间件组成的请求处理管道host.Initialize(); 3.1. 注册初始通用服务 BuildBuildCommonService方法主要做了两件事 查找HostingStartupAttribute特性以应用其他程序集中的启动配置 注册通用服务 若配置了启动程序集则发现并以IStartup类型注入到IOC容器中 3.2. 创建IWebHost public IWebHost Build(){ //省略部分代码var host new WebHost(applicationServices,hostingServiceProvider,_options,_config,hostingStartupErrors);}host.Initialize(); return host; } 3.3. 构建请求处理管道 请求管道的构建主要是中间件之间的衔接处理。 而请求处理管道的构建又包含三个主要部分 注册Startup中绑定的服务 配置IServer 构建管道 请求管道的构建主要是借助于IApplicationBuilder相关类图如下 4. 启动WebHost WebHost的启动主要分为两步 再次确认请求管道正确创建 启动Server以监听请求 启动 HostedService 4.1. 确认请求管道的创建 从图中可以看出第一步调用Initialize()方法主要是取保请求管道的正确创建。其内部主要是对BuildApplication()方法的调用与我们上面所讲WebHost的构建环节具有相同的调用堆栈。而最终返回的正是由中间件衔接而成的RequestDelegate类型代表的请求管道。 4.2. 启动Server 我们先来看下类图 从类图中我们可以看出IServer接口主要定义了一个只读的特性集合属性、一个启动和停止的方法声明。在创建宿主构造器IWebHostBuilder时我们通过调用UseKestrel()方法指定了使用KestrelServer作为默认的IServer实现。其方法申明中接收了一个IHttpApplicationTContext application的参数从命名来看它代表一个Http应用程序我们来看下具体的接口定义 其主要定义了三个方法第一个方法用来创建请求上下文第二个方法用来处理请求第三个方法用来释放上下文。而至于请求上下文是用来携带请求和返回响应的核心参数其贯穿与整个请求处理管道之中。ASP.NET Core中提供了默认的实现HostingApplication其构造函数接收一个RequestDelegate _application也就是链接中间件形成的处理管道用来处理请求。 var httpContextFactory _applicationServices.GetRequiredServiceIHttpContextFactory();var hostingApp new HostingApplication(_application, _logger, diagnosticSource, httpContextFactory); 4.3. 启动IHostedService IHostedService接口用来定义后台任务通过实现该接口并注册到Ioc容器中它会随着ASP.NET Core 程序启动而启动终止而终止。 5. 总结 结合源码通过对ASP.NET Core运行调用堆栈的梳理其启动流程的总体脉络一目了然并且了解到主要的几个关键对象 负责创建IWebHost的宿主构造器IWebHostBuilder 代表宿主的IWebHost接口 用于构建请求管道的IApplicationBuilder 中间件衔接而成的RequestDelegate 代表Web Server的IServer接口 贯穿请求处理管道的请求上下文HttpContext 可以用来注册后台服务的IHostedService接口 这一节就先从总体上对ASP.NET Core的运行原理有个基本的认识后续我们再一一讲解这几个核心对象来加深理解。 原文地址 http://www.cnblogs.com/sheng-jie/p/7640163.html  .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
http://www.zqtcl.cn/news/933508/

相关文章:

  • 海拉尔网站建设平台wordpress的插件下载地址
  • 企业服务类网站常用python编程软件
  • 有哪些漫画做的好的网站西安seo建站
  • 在建设部网站如何查询注册信息网站开发项目的前端后端数据库
  • 自助建站网站seo公司wordpress 相册 免费模板
  • 搜索建站网在线crm管理系统
  • 旅游网站管理系统源码wordpress 禁止爬虫
  • 会员登录系统网站建设wordpress 二级页面
  • 北京网站建设公司代理记账代理公司注册
  • 网站建设需要提供的资料物流企业网站建设与管理规划书
  • .net 手机网站开发wordpress下载链接框
  • 省直部门门户网站建设网站视频点播怎么做
  • 广西网站建设-好发信息网做信息图的网站
  • 网站建设费用怎么算遵义市住房和城乡建设局官方网站
  • 网站部分网页乱码手把手教建设网站
  • 电商网站开发目的举报网站建设运行情况
  • 网站专业设计在线科技成都网站推广公司
  • 怎么建设幸运28网站seo工作是什么意思
  • 人工智能和网站开发如何做网站栏目
  • 设计有什么网站推荐ppt大全免费模板
  • 建站点wordpress百度云
  • 微信朋友圈的网站连接怎么做公众号小程序制作步骤
  • 做移动互联网站点网站建设完工确认书
  • 网站建设英语翻译资料潼南国外免费自助建站
  • 技术支持上海网站建设如何在自己电脑上做网站
  • go语做网站深圳网上推广怎么做
  • 十堰网站建设电话刷网站流量有用吗
  • 轴承推广做哪个网站怎么在app中嵌入h5页面
  • 文书写作网站模板制作过程
  • 国外做家纺的网站wordpress导航加title