首页 > 编程语言 >ASP.NET Core 基础知识--环境变量,不同环境自动采用不同配置文件

ASP.NET Core 基础知识--环境变量,不同环境自动采用不同配置文件

时间:2022-11-21 17:59:33浏览次数:47  
标签:Core ASP 配置文件 环境 对应 appsetting json 我们

在一个项目当中,我们经常会有很多不同的环境的参数需要配置,比如

以登录cookie要写的domain为例吧
开发环境的配置:一般是localhost

测试环境:内部解析的测试域名

UAT用户验收测试环境:一般是生产环境上解析的一个域名,环境与生产环境基本一致。

生产环境:正式环境,对外运营使用的域名。

每种环境的域名都不一样,在代码中,我们如何去选定某个环境应该使用哪个配置文件呢?

下面直接上例子

我们appsetting.js配置文件,是可以设置不同环境下对应的文件的。

比如 我们创建一个MVC项目,默认有appsettings.json和appsettings.Development.json 两个配置文件

我们也可以按照格式自定义,比如通常生产环境下的配置文件名为:appsettings.Development.json

它就是以appsettings.XXX.json 为命名格式即可。XXX就是与我们环境名称对应的。

比如在生产环境下,我们一般定位为 appsetttings.Production.json ,其中Production 就是对应我们的环境名称。

 

下面是重点,文件跟变量名称怎么结合起来呢????

这就涉及到在项目中如何配置环境变量

比如在本机:

vs,项目右键--属性--调试

 

默认就是Development(开发环境)

那我们经常只在appsetting.json中写配置而已,为啥还能正确获取呢?

这是读取配置文件的一个机制,当指定的环境没有这个变量时,就到appsetting.json中读取,若指定环境的配置文件有对应变量了,它就不会再读取appsetting.json中的配置了。

也就是一个优先级问题,appsetting.json的优先级最低。在生产环境下也一样。

那我们为啥不都直接写在appsetting.json中就好了呢,其实就是我们上面讲的,一个环境对应一个配置文件,部署的时候,我们就不用再次修改配置。

那如果部署在IIS上,我们如何设置IIS对应的环境呢

我们发布后有个文件web.config,打开

 

 

将它修改为我们想要的环境即可。

同样的,在linux下我们也可以这么改。

但一般部署到linux 下,我们会写入到系统服务,方便自动启动和利用服务来控制项目启动、停止以及运行状态。

linux下的服务命名可以参考我的另一篇文章:https://www.cnblogs.com/fei686868/p/11234609.html

 

 

 

这样,我们项目中就可以根据环境的情况,定义不同环境下的环境变量。

部署的时候,设置对应的环境名称,即可自动读取对应的环境变量了。

 

标签:Core,ASP,配置文件,环境,对应,appsetting,json,我们
From: https://www.cnblogs.com/fei686868/p/16912132.html

相关文章

  • 用NetCore + ReactJS 实现一个前后端分离的网站 (2) 用依赖注入实现控制反转
    用NetCore+ReactJS实现一个前后端分离的网站(2)用依赖注入实现控制反转1.控制反转刚接触控制反转的时候,颇有些挠头,它怎么就反转了呢。稍微熟悉了之后,才理解了一些......
  • 篇(17)-Asp.Net Core入门实战-文章管理之文章类别管理(Linq子查询)
    篇(17)-Asp.NetCore入门实战-文章管理之文章类别的管理如果要做一个CMS系统,那么文章管理算是入门,文章管理附带一个类别管理,用来对文章进行类别区分。所以,本章简单讲一些......
  • ABP.Core+EF 左连接查询
    EF的Join查询,一般默认是内连接,但是有些情况会需要左连接,则需要如下方式://左连接varquery=fromrinthis.Repository.GetAll()        ......
  • 网卡配置文件
    TYPE=#设备类型,一般为Ethernet#使用ifconfig确认网卡的默认名称(ifconfig需安装net-tools)BOOTPROTO=#地址分配模式。static、DHCP、NAME=#网卡名称ONBOOT=#是否开机自......
  • ASP.NET Core教程-Routing(路由)
    更新记录转载请注明出处:2022年11月21日发布。2022年11月20日从笔记迁移到博客。RouteBasic(路由基础)路由说明请求URL映射到控制器方法的过程,这个映射过程由路由......
  • 常用 ASP.NET Core 十二个例子
    原文地址:http://piotrgankiewicz.com/2017/04/17/asp-net-core-12-samples/作者:PiotrGankiewicz翻译:杨晓东(Savorboard)前言在今天的博客中,我将介绍十几个可以在A......
  • 如何一秒钟从头构建一个 ASP.NET Core 中间件
    前言其实地上本没有路,走的人多了,也便成了路。--鲁迅就像上面鲁迅说的那样,其实在我们开发中间件的过程中,微软并没有制定一些策略或者文档来约束你如何编写一个中间件......
  • ASP.NET Core 中间件之压缩、缓存
    前言今天给大家介绍一下在ASP.NETCore日常开发中用的比较多的两个中间件,它们都是出自于微软的ASP.NET团队,他们分别是Microsoft.AspNetCore.ResponseCompression和......
  • ASP.NET Core 之 Identity 入门(二)
    前言在上篇文章中讲了关于Identity需要了解的单词以及相对应的几个知识点,并且知道了Identity处在整个登入流程中的位置,本篇主要是在.NET整个认证系统中比较重要的......
  • ASP.NET Core 之 Identity 入门(三)
    前言在上一篇文章中,我们学习了CookieAuthentication中间件,本篇的话主要看一下Identity本身。最早2005年ASP.NET2.0的时候开始,Web应用程序在处理身份验证和授权......