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

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页