加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

ASP.NET Core 配置和使用环境变量的实现

发布时间:2021-05-30 19:51:55 所属栏目:编程 来源:互联网
导读:这篇文章首要先容了ASP.NET Core 设置和行使情形变量的实现,文中通过示例代码先容的很是具体,对各人的进修可能事变具有必然的参考进修代价,必要的伴侣们下面

凡是在应用措施开拓到正式上线,在这个进程中我们会分为多个阶段,凡是会有 开拓、测试、以及正式情形等。每个情形的参数设置我们会行使差异的参数,因此呢,在ASP.NET Core中就提供了相干的情形API,利便我们更好的去做这些工作。

情形

ASP.NET Core行使ASPNETCORE_ENVIRONMENT来标识运行时情形。

ASP.NET Core预设情形

Development:开拓情形

Staging:暂存情形(测试情形)

Production:正式情形

要取得体系变量ASPNETCORE_ENVIRONMENT,在3.0版本之前可以通过注入IHostingEnvironment来获取,3.x通过IWebHostEnvironment 请看如下代码片断:

public class Startup { public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { } app.Run(async (context) => { await context.Response.WriteAsync( $"EnvironmentName: {env.EnvironmentName},IsDevelopment: {env.IsDevelopment()}" ); }); } }

网站启动后IWebHostEnvironment会从ASPNETCORE_ENVIRONMENT中获取内容,该变量可所以我们必要的任何值。也就是该变量不必然要必然是预设的值,我们是可以自界说的。

好比我们界说一个名为Test情形

public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { env.EnvironmentName = "test"; if (env.IsDevelopment()) { //TODO }else if (env.IsEnvironment("text")) { //TODO } app.Run(async (context) => { await context.Response.WriteAsync( $"EnvironmentName: {env.EnvironmentName},IsDevelopment: {env.IsDevelopment()}" ); }); }

注:在 Windows 和 macOS 上,情形变量和值不区分巨细写。 默认环境下,Linux 情形变量和值要区分巨细写 。

public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration((hostContext, config) => { var env = hostContext.HostingEnvironment; config.SetBasePath(Path.Combine(env.ContentRootPath, "Configuration")) .AddJsonFile(path: "settings.json", optional: false, reloadOnChange: true) .AddJsonFile(path: $"settings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true); }) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });

通过上述代码我们,读取我们的设置文件回显读取setting.json并配置为optional: false,暗示该设置为须要的设置;再往下继承读取再读取settings.{env.EnvironmentName}.json文件。当加载碰着沟通的Key那么就会包围掉前面的设置项。

SetBasePath:配置设置的目次位置,假如是放在差异目次,再把路径换掉即可。

AddJsonFile:

path:文件的路径位置。

optional:假如是须要的设置文件,可选就要设定为false,当文件不存在就会激发FileNotFoundException。

reloadOnChange:假如文件被更新,就同步更新IConfiguration实例的值。

情形配置

IIS

web.config设置情形变量

<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <handlers> <add path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="dotnet" arguments=".Demo.dll" stdoutLogEnabled="false" stdoutLogFile=".logsstdout"> <environmentVariables> <environmentVariable value="Test" /> </environmentVariables> </aspNetCore> </system.webServer> </configuration>

Visual Studio Code

launch.json中设置ASPNETCORE_ENVIRONMENT

{ "version": "0.1.0", "configurations": [ { "name": ".NET Core Launch (web)", "type": "coreclr", "env": { "ASPNETCORE_ENVIRONMENT": "Development" } } ] }

Visual Studio IDE

PropertieslaunchSettings.json

"profiles": { "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Test" } }, }

到此这篇关于ASP.NET Core 设置和行使情形变量的实现的文章就先容到这了,更多相干ASP.NET Core 设置和情形变量内容请搜刮剧本之家早年的文章或继承赏识下面的相干文章但愿各人往后多多支持剧本之家!

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读