asp.net core 在生产和测试环境中使用不同的配置文件

 

 appsettings.json  appsettings.development.json 到底使用哪一个?

其实是根据系统环境变量来的  ASPNETCORE_ENVIRONMENT 是development就加载  appsettings.development.json 。

我们在调试的时候,系统会自动设置环境变量到development.  但是发布到服务器上以后,即使是debug版本,它也不会自动设置环境变量,需要自己设置。除了development, 其实还可以有更多版本的appsettings,只要有对应的环境变量。

详情参见:https://www.sohu.com/a/151280913_468635

1. Visual studio 调试启动设置

在Properties/lanchSettings.json 中设置 

2. MacOS/Linux 服务器设置

命令行:

export ASPNETCORE_ENVIRONMENT=development

这样执行后,只是对当前的会话有效。如果想一直生效的话,还要把这句加到/etc/profile里

执行 vi /etc/profile ,加到最后面一行即可

查看环境变量 :

env:列出所有的环境变量 

 echo 变量名:  显示单独变量

dotnet *.dll启动项目的时候,我们可以看到当前的Hosting environment,以便检查是否正确,示例:

>dotnetAspNetCore.Samples.dll Hostingenvironment: Prodtction Contentroot path: C:UsersyuezhDesktopDemoAspNetCore.Samples Nowlistening on: http://*:5003 Applicationstarted. Press Ctrl+C to shut down.

最好的方式是做一个appsetting.json  存放公共的内容。appsetting.development.json存放测试的内容。 appsettings.product.json存放生产的内容。实际使用中 appsetting.json里不要和其他的有重复的内容,否则容易犯错误。比如一个数据库连接字符串,appsetting.json里指向了生产服务器。appsetting.development.json里指向了测试服务器。如果一旦忘记在测试服务器上设置变量,就会连接到生产服务器,造成灾难后果。如果appsettings.json里不包含连接信息,服务器上也没设置环境变量,就会导致连接不到服务器报错,这样就容易发现问题。如果你还不放心,可以在测试服务器上不要放appsettings.product.json

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值