菜鸟入门【ASP.NET Core】7:WebHost的配置、 IHostEnvironment和 IApplicationLifetime介绍、dotnet watch run 和attach到进程调试
WebHost的配置
我们用vs2017新建一个空网站HelloCore

可以使用ConfigureAppConfiguration对配置进行更改,比如说添加jsonfile和commandline配置。我们可以添加一个ASP.NET配置文件appsettings.json

使用ConfigureAppConfiguration进行读取appsettings.json

可以在Startup.cs中将配置读出来,ApplicationBuilder就是我们构建管道的构建器,但是这个时候Configure方法中并没有Configuration。
我们可以添加引用using Microsoft.Extensions.Configuration;然后就可以在Configure中使用Configuration了

运行效果:

IHostEnvironment和 IApplicationLifetime介绍
IHostEnvironment(宿主环境)
我们可以通过IHostEnvironment拿到ApplicationName(应用程序名称)、ContentRootFileProvider(项目所在目录文件提供程序)、
ContentRootPath(项目所在目录)、EnvironmentName(开发环境)、WebRootPath(WebRoot所在目录)、WebRootFileProvider(WebRoot文件提供程序)

宿主环境信息

IApplicationLifetime
从命名的角度来看,ApplicationLifetime貌似是对当前应用生命周期的描述,而实际上它存在的目的仅仅是在应用启动和关闭时对相关组件发送相应的信号或者通知而已。
ApplicationLifetime可以在应用开始、结束中、结束后的时候执行委托的事件
我们可以在Configure中注入IApplicationLifetime


dotnet watch run 和attach到进程调试
dotnet watch run
dotnet watch run我们要用到Visual Studio Code开发工具,打开Visual Studio Code,使用组合键Ctrl+Shift+Y打开调试控制台,选择终端,跳转到ProjectDemo文件夹下面

这时候我们就可以打开这个网站,选择:文件--》打开文件夹
这时候我们打开终端执行命令dotnet run,可以很方便的执行,我们可以在

怎么调试呢?我们可以先停止运行,然后我们点击F5或者点击调试进行调试

我们同时可以在我们的项目中打断点进行调试,我们就可以查看我们的断点信息

当执行的时候对代码进行修改,网站是不会有变化的。
attach
我们可以通过终端直接运行,这样就与我们.net调试工具vscode没有什么关系了,我们需要用到一个工具.net watch run,在项目文件中添加以下代码

这时候需要执行dotnet restore以下命令重新编译一下,然后直接用 dotnet watch run来启动

这时候我们访问http://localhost:5000/会显示

菜鸟入门【ASP.NET Core】7:WebHost的配置、 IHostEnvironment和 IApplicationLifetime介绍、dotnet watch run 和attach到进程调试的更多相关文章
- 【ASP.NET Core快速入门】(七)WebHost的配置、 IHostEnvironment和 IApplicationLifetime介绍、dotnet watch run 和attach到进程调试
WebHost的配置 我们用vs2017新建一个空网站HelloCore 这里的CreateDefaultBuilde实际上已经在内部替我们做好了默认配置. UseKestrel 使用kestrel ...
- asp.net core-12.dotnet watch run 和attach到进程调试
1.打开visual studio code 创建一个项目 打开终端 输出: dotnet new web --name hellocore 2.用visual studio code打开项目文件夹 ...
- ASP.NET Core Web 应用程序开发期间部署到IIS自定义主机域名并附加到进程调试
想必大家之前在进行ASP.NET Web 应用程序开发期间都有用到过将我们的网站部署到IIS自定义主机域名并附加到进程进行调试. 那我们的ASP.NET Core Web 应用程序又是如何部署到我们的 ...
- 基于 Vue.js 之 iView UI 框架非工程化实践记要 使用 Newtonsoft.Json 操作 JSON 字符串 基于.net core实现项目自动编译、并生成nuget包 webpack + vue 在dev和production模式下的小小区别 这样入门asp.net core 之 静态文件 这样入门asp.net core,如何
基于 Vue.js 之 iView UI 框架非工程化实践记要 像我们平日里做惯了 Java 或者 .NET 这种后端程序员,对于前端的认识还常常停留在 jQuery 时代,包括其插件在需要时就引 ...
- .NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了
作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/9985451.html 本来这篇只是想简单介绍下ASP.NET Core MVC项目的(毕竟要照顾到很多新 ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(CMS)-第二章 入门篇-快速入门ASP.NET Core看这篇就够了
.NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了 原文链接:https://www.cnblogs.com/yilezhu/p/9985451.ht ...
- Asp.Net Core 轻松学-项目目录和文件作用介绍
前言 上一章介绍了 Asp.Net Core 的前世今生,并创建了一个控制台项目编译并运行成功,本章的内容介绍 .NETCore 的各种常用命令.Asp.Net Core MVC 项目文件目录 ...
- 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之三 —— 配置
==== 目录 ==== 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之一 —— 开篇 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之二 —— ...
- [ASP.NET Core 3框架揭秘] 配置[1]:读取配置数据[上篇]
提到"配置"二字,我想绝大部分.NET开发人员脑海中会立即浮现出两个特殊文件的身影,那就是我们再熟悉不过的app.config和web.config,多年以来我们已经习惯了将结构化 ...
随机推荐
- ubuntu无法打开software-center
ubuntu无法打开software-center BUG: 在ubuntu14.04LTS版本下,点击软件中心图标,过了一会软件未能启动,没有动静.用命令行启动报如下错误: perrin@Littl ...
- php判断语句
编写代码时,可以为不同的情况执行不同的动作.可以使用判断条件语句来实现. if...else...elseif 例子一: <?php $t=date("H"); if ($t ...
- 1.8 新特性之 Lambda Expressions
Lambda expressions are allowed only at source level 1.8 or above The target type of this expression ...
- Learning Rust - Syntax
Rust is another compiling language that may replace the position of C/C++ in server filed. It runs f ...
- 在Word中插入Excel对象
using Word = NetOffice.WordApi; Word.Document doc = this._wordApplication.Documents.Add(@"C:\Us ...
- zookeeper学习day01
1.zkAPI:(借助闭锁来实现) 1)创建闭锁对象 2)创建zk对象 3)连接zk客户端(连接成功执行countDown方法) 4)执行await方法(保证链接成功) 5)zk对象调用对 ...
- 机器学习随笔01 - k近邻算法
算法名称: k近邻算法 (kNN: k-Nearest Neighbor) 问题提出: 根据已有对象的归类数据,给新对象(事物)归类. 核心思想: 将对象分解为特征,因为对象的特征决定了事对象的分类. ...
- 背水一战 Windows 10 (65) - 控件(WebView): 对 WebView 中的内容截图, 通过 Share Contract 分享 WebView 中的被选中的内容
[源码下载] 背水一战 Windows 10 (65) - 控件(WebView): 对 WebView 中的内容截图, 通过 Share Contract 分享 WebView 中的被选中的内容 作 ...
- cad.net 更改高版本填充交互方式为低版本样子
/// <summary> /// 修改cui,双击填充 /// </summary> /// https://blog.csdn.net/hfmwu/article/deta ...
- struts2框架学习笔记6:拦截器
拦截器是Struts2实现功能的核心部分 拦截器的创建: 第一种: package interceptor; import com.opensymphony.xwork2.ActionInvocati ...