<h2 ID="前言">前言
在我们开发的过程中,往往会有这几个环境,Dev、QA、Pre和Pro。
当然不同的环境可能大家的叫法会有点不一样。
最常遇到的问题,或许就是不同环境的配置文件问题!
一个环境一个配置文件是很常见的做法。
在开发的时候,我们可以通过修改launchSettings.Json来达到不同环境的切换。
本质是通过ASPNETCORE_ENVIRONMENT这个变量值来完成。
但是部署到服务器的时候就需要换个方式来处理这个问题了。 因为发布后的文件并没有launchSettings.Json。
这里简单介绍两种方法来处理这个问题。
设置系统的环境变量。
修改 /etc/profile
文件,添加下面的配置
export ASPNETCORE_ENVIRONMENT=QA
再执行source命令,使其生效。
source /etc/profile
执行 dotnet myweb.dll
的时候就可以看到下面的结果
Hosting environment: QAContent root path: /var/www/testwebNow Listening on: http://127.0.0.1:47372Application started. Press Ctrl+C to shut down.
这种做法,虽然可以完成不同环境的切换问题,但是要为每台机器设置一个环境变量。
由于直接是镜像copy出来的系统,好多系统配置是已经做好标准规范的了,所以这样做还是会很麻烦,运维的同学肯定也不愿意每copy一台机器,都帮你改这个东西。
所以这个方法自已玩玩的机率比较多。
在启动程序的时候,添加一个名为environment的Command-line参数,同时指定它的值为对应的环境值。
下面的例子是托管在Jexus时的写法。
AppHost={cmd=dotnet /var/www/testweb/myweb.dll --environment QA; root=/var/www/testweb; port=0;}
这个时候看到的日志也是一样的效果。
Hosting environment: QAContent root path: /var/www/testwebNow Listening on: http://127.0.0.1:47372Application started. Press Ctrl+C to shut down.
通过这种方法,可控性看上去比较好,只需要加个参数即可。
如果用方法2需要注意一点:
在Program.cs中,不要忘记AddCommandline。
不过如果用的是WebHost.CreateDefaultBuilder(args)
就可以忽略这一点了。
以上是内存溢出为你收集整理的ASP.NET Core多环境配置文件问题全部内容,希望文章能够帮你解决ASP.NET Core多环境配置文件问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)