前言

在我们开发的过程中,往往会有这几个环境,Dev、QA、Pre和Pro。

当然不同的环境可能大家的叫法会有点不一样。

最常遇到的问题,或许就是不同环境的配置文件问题!

一个环境一个配置文件是很常见的做法。

在开发的时候,我们可以通过修改launchSettings.json来达到不同环境的切换。

本质是通过ASPNETCORE_ENVIRONMENT这个变量值来完成。

但是部署到服务器的时候就需要换个方式来处理这个问题了。 因为发布后的文件并没有launchSettings.json。

这里简单介绍两种方法来处理这个问题。

方法1

设置系统的环境变量。

修改 /etc/profile 文件,添加下面的配置

export ASPNETCORE_ENVIRONMENT=QA

再执行source命令,使其生效。

source /etc/profile

执行 dotnet myweb.dll 的时候就可以看到下面的结果

Hosting environment: QA
Content root path: /var/www/testweb
Now listening on: http://127.0.0.1:47372
Application started. Press Ctrl+C to shut down.

这种做法,虽然可以完成不同环境的切换问题,但是要为每台机器设置一个环境变量。

由于直接是镜像copy出来的系统,好多系统配置是已经做好标准规范的了,所以这样做还是会很麻烦,运维的同学肯定也不愿意每copy一台机器,都帮你改这个东西。

所以这个方法自已玩玩的机率比较多。

方法2

在启动程序的时候,添加一个名为environment的Command-Line参数,同时指定它的值为对应的环境值。

下面的例子是托管在Jexus时的写法。

AppHost={
cmd=dotnet /var/www/testweb/myweb.dll --environment QA;
root=/var/www/testweb;
port=0;
}

这个时候看到的日志也是一样的效果。

Hosting environment: QA
Content root path: /var/www/testweb
Now listening on: http://127.0.0.1:47372
Application started. Press Ctrl+C to shut down.

通过这种方法,可控性看上去比较好,只需要加个参数即可。

如果用方法2需要注意一点:

Program.cs中,不要忘记AddCommandLine。

不过如果用的是WebHost.CreateDefaultBuilder(args)就可以忽略这一点了。

ASP.NET Core多环境配置文件问题的更多相关文章

  1. 在ASP.NET Core配置环境变量和启动设置

    在这一部分内容中,我们来讨论ASP.NET Core中的一个新功能:环境变量和启动设置,它将开发过程中的调试和测试变的更加简单.我们只需要简单的修改配置文件,就可以实现开发.预演.生产环境的切换. A ...

  2. .NET CORE学习笔记系列(3)——ASP.NET CORE多环境标识

    在开发项目的过程当中,生产环境与调试环境的配置是不一样的.比如连接字符串. ASP .NET CORE 支持利用环境变量来动态配置 JSON 文件.ASP.NET Core 引用了一个特定的环境变量  ...

  3. ASP.NET Core配置环境变量和启动设置

    在这一部分内容中,我们来讨论ASP.NET Core中的一个新功能:环境变量和启动设置,它将开发过程中的调试和测试变的更加简单.我们只需要简单的修改配置文件,就可以实现开发.预演.生产环境的切换. A ...

  4. [转]ASP.NET Core配置环境变量和启动设置

    本文转自:https://www.cnblogs.com/tdfblog/p/Environments-LaunchSettings-in-Asp-Net-Core.html 在这一部分内容中,我们来 ...

  5. windows/Linux下设置ASP.Net Core开发环境并部署应用

    10分钟学会在windows/Linux下设置ASP.Net Core开发环境并部署应用 创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 ...

  6. ASP.NET Core使用环境变量

    前言 通常在应用程序开发到正式上线,在这个过程中我们会分为多个阶段,通常会有 开发.测试.以及正式环境等.每个环境的参数配置我们会使用不同的参数,因此呢,在ASP.NET Core中就提供了相关的环境 ...

  7. 图解 ASP.NET Core开发环境准备

    2016年6月28日微软宣布发布 .NET Core 1.0.ASP.NET Core 1.0 和 Entity Framework Core 1.0. .NET Core是微软在两年前发起的开源跨平 ...

  8. ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 是对 ASP.NET 有重大意义的一次重新设计.本章节我 ...

  9. ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Windows 环境配置 ASP.NET Core ...

随机推荐

  1. 虚拟环境更新HA

    停止HA服务 sudo systemctl stop homeassistant@homeassistant 开始更新HA sudo -u homeassistant -H -s cd /srv/ho ...

  2. 13-事务&数据库连接池&DBUtiles

    事务&数据库连接池&DBUtils 事务 Transaction  其实指的一组操作,里面包含许多个单一的逻辑.只要有一个逻辑没有执行成功,那么都算失败. 所有的数据都回归到最初的状态 ...

  3. using Sysyem.Net.Http命名空间引用不了的解决方案

    1.查看.Net Framework的框架是否是在4.5之上,如果不是要下载4.5之上的目标框架. 2.在引用器里面添加using System.Net.Http命名空间 选择项目列表中的“引用”-- ...

  4. mybatis 之数据库 include refid ="base_column_list"

    mybatis 之数据库 include refid ="base_column_list" 对于刚学习使用SSM框架的新手来说,mybatis中的数据库语句有点不一样,下面便是对 ...

  5. Tomcat问题

    1 Tomcat控制台中文乱码 打开tomcat/conf/logging.properties 找到java.util.logging.ConsoleHandler.encoding = UTF-8 ...

  6. js与jq基础记录

    1.在js传递参数中含加号(+)的处理方式: 只需要把js中传过去的+号替换成base64 编码 %2B:encodeURI(str).replace(/\+/g,'%2B'). 2.随机产生8位随机 ...

  7. Bandwagon的配置记录(二) —— ftp文件传输

    SSH登录服务器 登录的方法在Bandwagon的配置记录(一) —— kexue上网 配置前的准备 1.新建一个目录(  /home/ftp  ),以后可以把文件放在这里,这里相当于是个中转站 cd ...

  8. 不高兴的o( ̄ヘ ̄o#)JJ

    题目描述 津津上初中了.妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班.另外每周妈妈还会送她去学习朗诵.舞蹈和钢琴.但是津津如果一天上课超过八个小时就会不高兴,而 ...

  9. [编译] 5、在Linux下搭建安卓APP的开发烧写环境(makefile版)—— 在Linux上用命令行+VIM开发安卓APP

    星期三, 19. 九月 2018 02:19上午 - BEAUTIFULZZZZ 0)前言 本文不讨论用IDE和文本编辑器开发的优劣,是基于以下两点考虑去尝试用命令行编译安卓APP的: 了解安卓APP ...

  10. [Swift]LeetCode307. 区域和检索 - 数组可修改 | Range Sum Query - Mutable

    Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive ...