无法读取配置节aspnetcore_ASP.NET Core 配置和使用环境变量

(给DotNet加星标,提升.Net技能)

转自:HueiFengcnblogs.com/yyfh/p/12339961.html

前言

通常在应用程序开发到正式上线,在这个过程中我们会分为多个阶段,通常会有 开发、测试、以及正式环境等。

每个环境的参数配置我们会使用不同的参数,因此呢,在ASP.NET Core中就提供了相关的环境API,方便我们更好的去做这些事情。

环境

ASP.NET Core使用ASPNETCORE_ENVIRONMENT来标识运行时环境。

  • ASP.NET Core预设环境

    1、Development:开发环境

    2、Staging:暂存环境(测试环境)

    3、Production:正式环境

要取得系统变量ASPNETCORE_ENVIRONMENT,在3.0版本之前可以通过注入IHostingEnvironment来获取,3.x通过IWebHostEnvironment 请看如下代码片段:

public class Startup
{
public void Configure(IApplicationBuilder app, IWebHostEnvironment env){
if (env.IsDevelopment())
{
}
app.Run(async (context) =>
{
await context.Response.WriteAsync(
$"EnvironmentName: {env.EnvironmentName},IsDevelopment: {env.IsDevelopment()}"
);
});
}
}

网站启动后IWebHostEnvironment会从ASPNETCORE_ENVIRONMENT中获取内容,该变量可以是我们需要的任何值。也就是该变量不一定要一定是预设的值,我们是可以自定义的。

比如我们定义一个名为Test环境

public void Configure(IApplicationBuilder app, IWebHostEnvironment env){
env.EnvironmentName = "test";
if (env.IsDevelopment())
{
//TODO
}else if (env.IsEnvironment("text")){
//TODO
}
app.Run(async (context) =>
{
await context.Response.WriteAsync(
$"EnvironmentName: {env.EnvironmentName},IsDevelopment: {env.IsDevelopment()}"
);
});
}

注:在 Windows 和 macOS 上,环境变量和值不区分大小写。 默认情况下,Linux 环境变量和值要区分大小写 。

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostContext, config) =>
{
var env = hostContext.HostingEnvironment;
config.SetBasePath(Path.Combine(env.ContentRootPath, "Configuration"))
.AddJsonFile(path: "settings.json", optional: false, reloadOnChange: true)
.AddJsonFile(path: $"settings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
});

通过上述代码我们,读取我们的配置文件回显读取setting.json并设置为optional: false,表示该配置为必要的配置;再往下继续读取再读取settings.{env.EnvironmentName}.json文件。当加载遇到相同的Key那么就会覆盖掉前面的配置项。

  • SetBasePath:设置配置的目录位置,如果是放在不同目录,再把路径换掉即可。

  • AddJsonFile:

  1. path:文件的路径位置。

  2. optional:如果是必要的配置文件,可选就要设定为false,当文件不存在就会引发FileNotFoundException。

  3. reloadOnChange:如果文件被更新,就同步更新IConfiguration实例的值。

环境设置

  • IIS

web.config配置环境变量

xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
handlers>
<aspNetCore processPath="dotnet" arguments=".\Demo.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Test" />
environmentVariables>
aspNetCore>
system.webServer>
configuration>
  • Visual Studio Code

launch.json中配置ASPNETCORE_ENVIRONMENT

{
"version": "0.1.0",
"configurations": [
{
"name": ".NET Core Launch (web)",
"type": "coreclr",
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
]
}
  • Visual Studio IDE

Properties\launchSettings.json

"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Test"
}
},
}

712c80f5850cfb13d1cf98671cf30a13.png

推荐阅读  点击标题可跳转ASP.NET Core 3.x 授权中的概念一文带你了解C# DLR 的世界深入理解ASP.NET Core 依赖注入

看完本文有收获?请转发分享给更多人

关注「DotNet」加星标,提升.Net技能 

afcb9c66031c10b6c3555fd1eef28ca7.png

好文章,我在看❤️

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488715.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机软件英文参考文献,软件工程英文参考文献(优秀范文105个)

当前,计算机技术与网络技术得到了较快发展,计算机软件工程进入到社会各个领域当中,使很多操作实现了自动化,得到了人们的普遍欢迎,解放了大量的人力.为了适应时代的发展,社会各个领域大力引进计算机软件工程.下面是软件工程英文参考文献105个&#xff0c;供大家参考阅读。软件工…

联想ghost重装系统_一键ghost,详细教您使用一键ghost怎么重装win7系统

讲起这个重装系统的方法跟操作&#xff0c;相信广大的用户听的最多的&#xff0c;用的最多的&#xff0c;看的最多的&#xff0c;就是U盘安装系统&#xff0c;硬盘安装系统以及渐渐退隐江湖的光盘重装系统&#xff0c;这几样了&#xff0c;那么不知道你们有没有听过&#xff0c…

面对新型肺炎疫情,AI能做什么?

来源&#xff1a; AI科技大本营根据最新的新型冠状病毒疫情通报&#xff0c;截至1月30日24时&#xff0c;国家卫生健康委公布确诊病例9692例&#xff0c;重症病例1527例&#xff0c;累计死亡病例213例&#xff0c;另有疑似病例15238例。为防止疫情扩散&#xff0c;全国31省市自…

残疾人计算机高考试题,残疾人勇夺玉溪高考榜眼:想去清华学计算机

没有脚&#xff0c;思想可以替我走很远。矣晓沅网易教育频道综合讯 据春城晚报报道&#xff0c;6年前&#xff0c;备受类风湿关节炎折磨的矣晓沅在家中写下了一篇名为《第一片落叶》的故事&#xff0c;讲述了一个中学生纷繁复杂的校园生活。彼时的他只能坐在轮椅上&#xff0c;…

directx repair_DirectX修复工具增强版

DirectX修复工具最新版&#xff1a;DirectX Repair V3.9 增强版 NEW!版本号&#xff1a;V3.9.0.29371大小: 111MB/7z格式压缩&#xff0c;196MB/zip格式压缩&#xff0c;345MB/解压后其他版本&#xff1a;标准版 在线修复版MD5校验码&#xff1a;DirectX Repair.exe/eeab9900cc…

灯亮怎么办_车辆隔音效果不好怎么办?

会开车并不代表对车了如指掌日常生活中还是有好多车主被诸多问题困扰&#xff0c;比如车辆隔音效果不好怎么办&#xff1f;扳手形状的故障灯亮起是什么意思&#xff1f;今天&#xff0c;就由利星大连为您答疑解惑汽车隔音效果不好该怎么办&#xff1f;有车以后遇到噪音偏大的情…

医院计算机管理工资,医院工资管理系统的设计与开发

【第五篇】论文题目: 医院工资管理系统的设计与开发摘要:随着计算机的普及和医院业务的飞速发展,信息化对医院的发展发挥着越来越重要的作用.工资管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生差错.采用手工进行工资发放工作,不仅工作量大,工作效率低且容易出现错误…

Linux下使用iotop检测磁盘io使用情况

介绍 Linux下的IO统计工具如iostat, nmon等大多数是只能统计到per设备的读写情况, 如果你想知道每个进程是如何使用IO的就比较麻烦. iotop 是一个用来监视磁盘 I/O 使用状况的 top 类工具。iotop 具有与 top 相似的 UI&#xff0c;其中包括 PID、用户、I/O、进程等相关信息。 实…

springboot 2.3_SpringBoot对消息队列(MQ)的支持

1.异步消息的定义异步消息的主要目的是为了系统与系统之间的通信&#xff0c;所谓异步消息即消息发送者无需等待消息接收者的处理以及返回&#xff0c;甚至无需关心消息是否发送成功。在异步消息中有两个很重要的概念&#xff0c;即消息代理和目的地&#xff0c;当消息发送者发…

改变世界的十大经典物理实验及十大著名思想实验

来源&#xff1a;EETOP科学实验是物理学发展的基础&#xff0c;又是检验物理学理论的惟一手段&#xff0c;特别是现代物理学的发展&#xff0c;更和实验有着密切的联系。现代实验技术的发展&#xff0c;不断地揭示和发现各种新的物理现象&#xff0c;日益加深人们对客观世界规律…

智慧城市_城市大脑:加速构建智慧城市

(来源&#xff1a;天津数港)原标题&#xff1a;城市大脑&#xff1a;加速构建智慧城市加关注当前&#xff0c;伴随着5G、大数据、人工智能、区块链和新基建等一波又一波科技浪潮的到来&#xff0c;智慧城市的建设方兴未艾。然而&#xff0c;“智慧城市不智慧”的问题一直困扰着…

爱尔兰圣三一学院计算机全球排名,QS世界大学学科排名,爱尔兰圣三一学院20个学科进世界百强...

原标题&#xff1a;QS世界大学学科排名&#xff0c;爱尔兰圣三一学院20个学科进世界百强“爱尔兰、教育、悠久学术历史、世界一流、最大图书馆……”&#xff0c;看到这些关键词&#xff0c;个蹦入脑海中的是什么呢&#xff1f;相信大家都已经猜出来了&#xff0c;拥有如此之多…

nginx做服务器入口_「查缺补漏」巩固你的Nginx知识体系

Nginx篇基本介绍Nginx是一款轻量级的 Web服务器 / 反向代理服务器 / 电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器&#xff0c;主要的优点是&#xff1a;支持高并发连接&#xff0c;尤其是静态界面&#xff0c;官方测试Nginx能够支撑5万并发连接内存占用极低配置简单&…

Oracle 维护数据的完整性 一 索引

简介:索引是用于加速数据存取的数据对象,合理的使用索引可以大大降低i/o 次数,从而提高数据的访问性能. 当我们从一张表中检索我们需要的数据是,oralce往往会进行全表扫描,就是遍历所有的数据行,来找到我们需要的数据,并返回结果集给我们,这个过程就像下图: 当这个人需要去图书…

特征值_陶哲轩数学发现的故事 | 特征值特征向量等式

12月3日&#xff0c;陶哲轩在其个人博客上更新了一篇文章&#xff0c;https://terrytao.wordpress.com/2019/12/03/eigenvectors-from-eigenvalues-a-survey-of-a-basic-identity-in-linear-algebra/说他与合作者在arXiv上更新了此前关于特征值的文章Eigenvectors from Eigenva…

迪士尼研究院等将人造“神经纤维”用于软体机器人,赋予其“本体感知能力”!...

来源&#xff1a;机器人大讲堂 导读软体机器人模仿章鱼&#xff0c;象鼻&#xff0c;海星等动物而设计&#xff0c;栩栩如生&#xff0c;他们由软材料&#xff08;硅胶&#xff0c;橡胶&#xff09;构成&#xff0c;有着天生优良的环境适应性以及安全交互性。但是相比于传统机器…

计算机计算exp函数原理,exp()函数的数值计算中的系数

经过Cephes来源搜索后&#xff0c;我认为这是Pommier的翻译错误。这不是我第一次在Pommier的代码中看到错误。我建议在Gromacs中使用数学库。从exp.c在Cephe的&#xff0c;static double C1 6.93145751953125E-1;static double C2 1.42860682030941723212E-6;....px floor(L…

python中对象的概念是什么_Python 中一切都是对象,那如果类是对象,那(什么)是类呢?...

HelloAmadeus 2018-09-07 21:49:22 08:00 看点 python 源码实现就对"一切都是对象" 这种模糊的描述更清晰了. 举一个简单的例子如两个 int 相加, 伪代码如下: PyObject * Interger_Add(PyObject* left, PyObject* right) { PyIntObject* int_left (PyIntObject*) le…

C# 静态类和非静态类(实例类)

1.非静态类里面可以出现静态成员和非静态成员 using System; namespace shuzu { class dom_class{public string name "张三";private int age;public int Age//通过属性访问私有成员{get { return age; }set { age value; }}}class aclass {static void Main(s…

保存时间 默认_一些不起眼但又非常的实用的PPT制作技巧,大大节省PPT制作时间...

从PPT小白到PPT大神的过程中&#xff0c;我们总会无数次碰壁&#xff0c;无数次陷入困境。今天为大家带来的是一些不起眼的PPT技巧&#xff0c;但是非常的实用&#xff0c;不信就看下文吧&#xff01;自定义访问工具栏在PPT中我们有很多的常用操作&#xff0c;例如「左对齐/右对…