的方法步骤 NET核心配置多个环境
配置多个环境是日常开发中常见的操作。实现多环境配置后,可以避免生产和测试环境混合带来的麻烦和风险,降低项目风险,通过多环境保证生产环境中密钥的安全性。
我在做iOS开发的时候,iOS的解决方案是通过多个目标配置不同的环境变量,用宏启动不同的环境时读取不同的配置。当然,也会有类似的方式在。NET Core,而且比iOS简单,只需要注入不同的环境变量。iOS还需要建立多个目标来注入不同的环境变量,而。NET Core可以在启动时直接注入不同的环境变量,完全不用做其他操作。
方法1:预编译指令DEBUG
#if DEBUG //读取环境1配置文件#else //读取环境2配置文件#endif。如果你只有两种环境,这种方法是不够的。在日常开发中,我们基本都是在DeBug模式下运行,生产环境中的release代码基本都是编译后的release代码,所以使用预编译指令#if DEBUG就可以满足这个要求,而且这种操作模式非常简单,只需要准备两个不同的即可。
///summary ///全局配置管理类(根据DEBUG/RELEASE区分环境)///summary公共静态类my configuration { public static I configuration } get;设置;} static MyConfiguration(){ # if DEBUG var env path=' app settings。development . JSON ';# else var EnvPath=' appsettings . JSON ';# endif Configuration=new Configuration builder()。添加(新的JsonConfigurationSource { Path=env Path,ReloadOnChange=true })。build();}}但是如果要调试生产环境或者实现两个以上的环境,只能使用第二种方法。
方法2:注入不同的环境变量
首先,为不同的环境准备配置文件,例如:
然后在启动项目属性下选择启动设置. json文件,并添加以下配置:
{ ' profiles ' : { ' 240 ' : { ' command name ' : ' 240 ',' launchBrowser': true ',' launchul ' : ',' ENVIRONMENT variables ' : { ' ASPNETCORE _ ENVIRONMENT ' : ' dev 240 ' },' 241 ' : { ' command name ' : ' 241 ',' launch browser ' 33333330
当然,我们也可以直接在启动项目的Properties中进行更改,如下图所示:
当然,在配置了环境变量之后,我们需要使用环境变量来创建一个新配置的工具类文件:
///摘要///全局配置管理类(适配多环境)////摘要公共静态类MyConfigurationHelper { public static icoupfig Config { get;设置;}静态MyConfigurationHelper(){ var env=BfServiceProvider .服务提供商。GetRequiredServiceIHostingEnvironment();配置=新的配置生成器()。SetBasePath(env .ContentRootPath ).AddJsonFile($'appsettings .{env .环境名称}。'' JSON ',真,真)。build();} }公共静态类MyServiceProvider {公共静态IserviceProvider service provider { get;设置;} }这个文件中提供了一个读取配置图标配置的我的配置帮助程序类和一个提供构造函数容器的MyServiceProvider类构造函数是。网核心中的服务容器,他能够访问到程序注入的环境变量,然后进入Startup.cs中引用这个文件,并且在安装使成形方法中,将IApplicationBuilder的应用服务传递进去。
公共void Configure(IAP presentonbuilder应用程序,IHostingEnvironment env) { //配置多环境我的服务提供商.ServiceProvider=app .应用服务;}这时,我们回过去看我的配置帮助程序类,它将会在下一次被使用时,从构造函数中读取我们选择的启动环境对应的环境变量字符串Dev240、Dev241、Dev243、分段;从而实现读取不同的配置文件与图标配置配置中,我们后继使用读取配置文件的操作时,都将使用我的配置帮助程序。配置来进行读取。
发布时区分多环境
在服务器上面,我们使用监督者来守护我们的。净核心应用程序,所以我们想要运行哪个环境,就可以在监督者的项目配置中进行配置,修改/etc/supervisord.d/下的配置文件键入环境变量如下:
#/etc/supervisord。d/dotnetcoretest。ini[程序: dotnetcoretest]目录=/XXX/DotNetCoreTestcommand=dotnetcoretest。dllautostart=true autor start=true user=rootnumprocs=1 redirect _ stderr=true stdout _ log file=/XXX/logs/dotnetcoretest。日志#环境变量环境=ASPNETCORE _ ENVIRONMENT=dev 240方式一在发布时只需要编译发布就能自动读取对应环境的配置文件,无需上面的操作。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
版权声明:的方法步骤 NET核心配置多个环境是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。