ASP.NET Core多环境配置文件问题
前言
在我们开发的过程中,往往会有这几个环境,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多环境配置文件问题的更多相关文章
- 在ASP.NET Core配置环境变量和启动设置
在这一部分内容中,我们来讨论ASP.NET Core中的一个新功能:环境变量和启动设置,它将开发过程中的调试和测试变的更加简单.我们只需要简单的修改配置文件,就可以实现开发.预演.生产环境的切换. A ...
- .NET CORE学习笔记系列(3)——ASP.NET CORE多环境标识
在开发项目的过程当中,生产环境与调试环境的配置是不一样的.比如连接字符串. ASP .NET CORE 支持利用环境变量来动态配置 JSON 文件.ASP.NET Core 引用了一个特定的环境变量 ...
- ASP.NET Core配置环境变量和启动设置
在这一部分内容中,我们来讨论ASP.NET Core中的一个新功能:环境变量和启动设置,它将开发过程中的调试和测试变的更加简单.我们只需要简单的修改配置文件,就可以实现开发.预演.生产环境的切换. A ...
- [转]ASP.NET Core配置环境变量和启动设置
本文转自:https://www.cnblogs.com/tdfblog/p/Environments-LaunchSettings-in-Asp-Net-Core.html 在这一部分内容中,我们来 ...
- windows/Linux下设置ASP.Net Core开发环境并部署应用
10分钟学会在windows/Linux下设置ASP.Net Core开发环境并部署应用 创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 ...
- ASP.NET Core使用环境变量
前言 通常在应用程序开发到正式上线,在这个过程中我们会分为多个阶段,通常会有 开发.测试.以及正式环境等.每个环境的参数配置我们会使用不同的参数,因此呢,在ASP.NET Core中就提供了相关的环境 ...
- 图解 ASP.NET Core开发环境准备
2016年6月28日微软宣布发布 .NET Core 1.0.ASP.NET Core 1.0 和 Entity Framework Core 1.0. .NET Core是微软在两年前发起的开源跨平 ...
- ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 是对 ASP.NET 有重大意义的一次重新设计.本章节我 ...
- ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Windows 环境配置 ASP.NET Core ...
随机推荐
- Java Json字符串转Java对象遇到属性大小写的问题解决
String objectStr="{\"namE\":\"JSON\",\"age\":\"24\",\&q ...
- sass快速入门
sass十分钟入门 变量 sass中可以定义变量,方便统一修改和维护. //sass style //----------------------------------- $fontStack: H ...
- CefSharp Cookie独立 GetGlobalCookieManager
可以实现: 登陆多个京东站点,而京东各个账号互不影响. 可以完全实现Cookie独立,Cache独立. Demo用VS2017开发,C# ,NET4.5 没错,稍加改造就可以用来刷单.有Demo,有 ...
- 微信小程序开发---自定义组件
开发者可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中重复使用:也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护.自定义组件在使用时与基础组件非常相似. 创建自定义组件 类似于页面, ...
- jq 点击复制div里面的内容 如果粘贴到富文本中,会将样式,里面所有的标签,文字一并粘贴进去
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- MP3、MP4的文件选择及播放
项目主页网址如下: https://github.com/Judylalala/en ####技术问题1:如何播放音频(MP3).视频(MP4)? ####解决过程1:我首先想到了XMAL插件中的Me ...
- 带parent指针的successor求解
题目: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点(不存在重复数据).树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 思路: 如果当前节点有右孩子,则下一个节点是右孩子中 ...
- Java堆和栈的区别和介绍,JVM的堆和栈
一.Java的堆内存和栈内存 Java把内存划分成两种:一种是堆内存,一种是栈内存. 堆:主要用于存储实例化的对象,数组.由JVM动态分配内存空间.一个JVM只有一个堆内存,线程是可以共享数据的. ...
- 事件派发dispatchEvent
1.什么是dispatchEvent? dispatch意为"调度"."派遣",event为"事件".所以dispatchEvent即向指定 ...
- [Swift]LeetCode696. 计数二进制子串 | Count Binary Substrings
Give a string s, count the number of non-empty (contiguous) substrings that have the same number of ...