.net core mvc启动顺序以及主要部件1
首先我是新人一个写这些东西也是为了增加记忆,有不对的地方请多多指教。
说回正题,打开Program.cs文件,看到在有个CrateWebHostBuilder方法它有个args的字符串数组参数,这个参数的主要作用是可以在用cmd启动网站程序的时候在后面传递一些参数例如:
c:\Users>E:\dotnetcore\demo\\bin\Debug\netcoreapp2.2\RazorMvcDemo1.dll connectionstring="server=.;database=test;uid=sa;pwd=123456"
这个时候我们是可以注入IConfiguration这个实例拿到connectionstring的值,例如:
public Startup(IConfiguration configuration)
{
Console.WriteLine(configuration["connectionstring"]);
}
CrateWebHostBuilder参数继续看下去,CrateWebHostBuilder方法中有个WebHost.CreateDefaultBuilder(args),首先说说CreateDefaultBuilder是干什么的,其实这个方法主要就是IConfiguration的构建,转到源代码可以看见 第一行代码创建了WebHostBuilder这个对象是贯穿整个CreateDefaultBuilder方法的核心,WebHostBuilder构建了IConfiguration实例以及基础环境配置,请看下图


然后继续往下,下面的if中是对WebHostBuilder环境配置的补充,然后继续就看见我们前面所提到的cmd配置的实现,在接下来是我们.net core 作为Kestrel启动的配置请看下图!
然后再下来是我们的主要配置部分,也就是appsettings.json文件的配置,appsettings.json文件分为两个部分,1、直接就是appsettings.json文件。2、按照环境不同分别配置不同的appsettings.json配置,例如:我们的开发环境可以是这样appsettings.Development.json,生成环境可以是appsettings.Production.json,预演环境也是同理,具体请看下图:
再继续往下看,接下来是我们的默认日记记录配置,也就是我们平时在启动.netcore mvc会看到在控制台和我们vs中的输出以及调试窗口中会打印一些启动信息和异常信息,其实就是我们接下来看到的日志记录,请看下图:

最后就是我们的依赖注入容器和IIS配置;最后返回最开始创建的WebHostBuilder实例,请看下图:
好了,暂时写到这里,后面再继续分享Startup
.net core mvc启动顺序以及主要部件1的更多相关文章
- .net core mvc启动顺序以及主要部件2
原文:.net core mvc启动顺序以及主要部件2 前一篇提到WebHost.CreateDefaultBuilder(args)方法创建了WebHostBuilder实例,WebHostBuil ...
- .net core mvc启动顺序以及主要部件4-MVC
前面三章已经把MVC启动过程以及源代码做了讲解,本章开始正式MVC,mvc全称叫model view controller,也就是把表现层又细分三层,官网的图片描述: 默认创建了一个.net core ...
- .net core mvc启动顺序以及主要部件3-Startup
前面分享了.net core Program类的启动过程已经源代码介绍,这里将继续讲Startup类中的两个约定方法,一个是ConfigureServices,这个方法是用来写我们应用程序所依赖的组件 ...
- PCB MVC启动顺序与各层之间数据传递对象关系
准备着手基于MVC模式写一套Web端流程指示查看,先着手开发WebAPI打通数据接口,后续可扩展手机端 这里将MVC基本关系整理如下: 一.MVC启动顺序 二.MVC各层之间数据传递对象关系
- ASP.NET Core MVC 源码学习:MVC 启动流程详解
前言 在 上一篇 文章中,我们学习了 ASP.NET Core MVC 的路由模块,那么在本篇文章中,主要是对 ASP.NET Core MVC 启动流程的一个学习. ASP.NET Core 是新一 ...
- asp.net core mvc剖析:启动流程
asp.net core mvc是微软开源的跨平台的mvc框架,首先它跟原有的MVC相比,最大的不同就是跨平台,然后又增加了一些非常实用的新功能,比如taghelper,viewcomponent,D ...
- 解说asp.net core MVC 过滤器的执行顺序
asp.net core MVC 过滤器会在请求管道的各个阶段触发.同一阶段又可以注册多个范围的过滤器,例如Global范围,controller范围等.以ActionFilter为例,我们来看看过滤 ...
- linux下使用supervisor启动.net core mvc website的配置
发布好的asp.net core mvc项目, 如果想在window或linux下的以控制台程序启动的话,可以用下面的命令 dotnet MyProject.dll --urls="http ...
- net core mvc剖析:启动流程
net core mvc剖析:启动流程 asp.net core mvc是微软开源的跨平台的mvc框架,首先它跟原有的MVC相比,最大的不同就是跨平台,然后又增加了一些非常实用的新功能,比如taghe ...
随机推荐
- python中enumerate()函数的用法
描述: enumerate() 函数用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中.其英文意为:枚举,列举. 函数说明: 语法 ...
- 使用 ss 命令查看连接信息
作用:打印主机socket连接信息,netstate可以做的它都可以做,比netstate 更灵活,而且由于ss使用 tcp_diag 内核模块,所以速度更快. 用法: ss [ OPTIONS ] ...
- lsof指令使用简介
lsof替代了netstat和ps的全部工作.它可以带来那些工具所能带来的一切,而且要比那些工具多得多 最重要的是,当你给它传递选项时,默认行为是对结果进行“或”运算.因此,如果是用-i来拉出一个端口 ...
- Ubuntu apt-get出现unable to locate package解决方案
前言 刚安装好的ubuntu 17发现apt-get安装指令异常. 故经网上搜索调查发现,发现这个问题基本是因为apt-get需要更新的缘故. 解决方案 只需使用命令升级更新即可. sudo apt- ...
- 【转】Hive over HBase和Hive over HDFS性能比较分析
转载:http://lxw1234.com/archives/2015/04/101.htm 环境配置: hadoop-2.0.0-cdh4.3.0 (4 nodes, 24G mem/node) h ...
- python动态添加属性和方法
---恢复内容开始--- python动态添加属性: class Person(object): def __init__(self,newName,newAge): self.name = newN ...
- PAT Basic 1022
1022 D进制的A+B 输入两个非负10进制整数A和B(<=2^30^-1),输出A+B的D (1 < D <= 10)进制数. 输入格式: 输入在一行中依次给出3个整数A.B和D ...
- seajs模块化加载框架使用
seajs是模块化加载框架.seajs.org已经打不开了,seajs的github.seajs速查文档 <!--如果完成下面4步,则seajs掌握了80%js模块化1.引入seajs的库 :& ...
- Appium解锁九宫格(TouchAction)
TouchAction 1.源码可以在这个路径找到:Lib\site-packages\appium\webdriver\common\touch_action.py class TouchActio ...
- Scrapy 应用之爬取《盗墓笔记》
爬取<盗墓笔记>和爬取<宦海沉浮>原理一样,但是使用了两种不同的追踪链接的方式,<盗墓笔记>使用的是跟踪下一页链接,直至没有下一页为止,<宦海沉浮>则是 ...