net core体系-web应用程序-4net core2.0大白话带你入门-5asp.net core环境变量详解
asp.net core环境变量详解
环境变量详解
Windows操作系统的环境变量在哪设置应该都知道了。
Linux(centos版本)的环境变量在/etc/profile里面进行设置。用户级的环境变量在其它文件里面,不多说了,有兴趣的可以网上查下。
当我们的应用程序发布到生产环境时,如果用到了环境变量,就需要对服务器操作系统的环境变量进行设置。这里只是进行提前说明。
设置环境变量
环境变量可以在launchSettings.json文件里面设置,也可以右键项目->属性->调试->环境变量进行设置。这两种方式的内容是同步的,任何一种方式修改后,另外一种就会同步。只不过一个是直接修改文件,一个是通过可视化的界面进行修改。


说明:
1.如果SongLou.Web下面的applicationUrl设置成ip,且没有在program.cs里面使用UseUrls()绑定访问地址,那么这里的设置是有效的。如果使用UseUrls()进行了设置,那么这里的设置就无效了,被代码级的设置覆盖了。
2.假如启动方式是IIS Express,那么在视图界面设置后,更改会同步到launchSettings.json里的IIS Express下。如果是自宿主的方式,那么在视图界面设置后,更改会同步到launchSettings.json里的SongLou.Web下。IIS Express下url不能设置成IP。
使用环境变量
在默认的HomeController的Index方法里面加入以下代码进行测试:

在地址栏输入:http://10.101.56.52/(我的IP),查看结果:

因为我当前是以自宿主的方式运行的项目,所以看到的结果是launchSettings.json里面的SongLou.Web下的数据。如下图:

Centos环境变量设置
当应用发布到生产环境时,如果用到环境变量,还需要在服务器的操作系统里面进行设置。
export ASPNETCORE_ENVIRONMENT=product
export username=subendong
export password=111111
将这三行代码拷贝到/etc/profile文件末尾,并保存。然后更新profile。
[root@localhost ~]# source /etc/profile
然后用dotnet命令重新启动web引用。在启动前别忘记开启80端口。
[root@localhost songlou]# dotnet SongLou.Web.dll

会看到Hosting environment:product,就是我们上面设置的ASPNETCORE_ENVIRONMENT。
同时程序输出的结果也发生了变化,跟开发环境不一样了,如下图:

重要说明:在centos设置系统级的环境变量时,今天犯了一个比较低级的错误,就是开了两个远程连接窗口,在窗口2设置了环境变量,也更新了,但就是不起作用。最后经过几个小时的排查,终于找到了原因。如果在窗口2做的设置,那么窗口1也要更新profile文件。只有窗口1更新了profile之后,运行dotnet命令才起作用。如果一开始profile也是在窗口1做的更改就不会耽误那么久了。
net core体系-web应用程序-4net core2.0大白话带你入门-5asp.net core环境变量详解的更多相关文章
- net core体系-web应用程序-4net core2.0大白话带你入门-6asp.net core配置文件
asp.net core配置文件 读取配置文件 asp.net core使用appsettings.json代替传统.net framework的web.config中的<appSettin ...
- net core体系-web应用程序-4net core2.0大白话带你入门-3asp.net core项目架构和配置文件解读
asp.net core web项目目录解读 Connected Services 和传统.net web项目相比,它的功能类似于添加webservice或者wcf service的引用.暂时用不 ...
- net core体系-web应用程序-4net core2.0大白话带你入门-2asp.net core新建项目
新建asp.net core项目 开发环境:Windows Server R2 2008 开发工具:Microsoft Visual Studio 2017 新建asp.net core项目 创建 ...
- net core体系-web应用程序-4net core2.0大白话带你入门-7asp.net core日志组件(Logger和Nlog)
asp.net core日志组件 日志介绍 Logging的使用 1. appsettings.json中Logging的介绍 Logging的配置信息是保存在appsettings.json配置 ...
- net core体系-web应用程序-4net core2.0大白话带你入门-4asp.net core配置项目访问地址
asp.net core配置访问地址 .net core web程序,默认使用kestrel作为web服务器. 配置Kestrel Urls有四种方式,我这里只介绍一种.其它方式可自行百度. 在Pr ...
- net core体系-web应用程序-4net core2.0大白话带你入门-11asp.net core 2.0 cookie的使用
asp.net core 2.0 cookie的使用 本文假设读者已经了解cookie的概念和作用,并且在传统的.net framework平台上使用过. cookie的使用方法和之前的相比也有所 ...
- net core体系-web应用程序-4net core2.0大白话带你入门-10asp.net core session的使用
asp.net core session的使用 Session介绍 本文假设读者已经了解Session的概念和作用,并且在传统的.net framework平台上使用过. Asp.net core ...
- net core体系-web应用程序-4net core2.0大白话带你入门-9asp.net core服务的生命周期
asp.net core服务的生命周期 Transient:每一次GetService都会创建一个新的实例 Scoped:在同一个Scope内只初始化一个实例 ,可以理解为( 每一个request ...
- net core体系-web应用程序-4net core2.0大白话带你入门-8asp.net core 内置DI容器(DependencyInjection,控制翻转)的一点小理解
asp.net core 内置DI容器的一点小理解 DI容器本质上是一个工厂,负责提供向它请求的类型的实例. .net core内置了一个轻量级的DI容器,方便开发人员面向接口编程和依赖倒置(IO ...
随机推荐
- 前端 ----jQuery的文件操作
06-jQuery的文档操作*** 之前js中咱们学习了js的DOM操作,也就是所谓的增删改查DOM操作.通过js的DOM的操作,大家也能发现,大量的繁琐代码实现我们想要的效果.那么jQuery的 ...
- echo和重定向
命令: echo 作用: echo有重复的意思,会在终端中显示参数指定的文字,通常会和重定向联合使用 使用: echo 文字内容 例子: 在终端中显示hello echo hello 命令: > ...
- Day8--------------RPM包管理
nginx.tar.gz:源码,编译安装 RPM:redhat package manage,二进制 增.删.查 1.增 package------>ls|less------------> ...
- __dict__(字典的另一种用法)
class Foo(): def __init__(self): self.name=None self.age=19 self.addr='上海' @property def dict(self): ...
- VUE 脚手架项目搭建
1. 概述 1.1 说明 vue-cli是一个官方发布vue.js项目脚手架,使用vue-cli可以快速创建vue项目.GitHub地址是:https://github.com/vuejs/vue-c ...
- org.apache.catalina.core.DefaultInstanceManager cannot be cast to org.apache.tomcat.InstanceManager
1.控制台报错信息 严重: Servlet.service() for servlet [jsp] in context with path [/Resource] threw exception [ ...
- Connection reset by [server_ip] port 22 (hexo d 部署博客出错)
问题 在使用 hexo d 部署博客和使用 Git/Github 进行 git push -u origin master 时遇到了以下问题: git -c diff.mnemonicprefix=f ...
- Mybaits动态Sql
什么是动态SQL? MyBatis的强大之处便是它的动态SQL,如果你使用JDBC那么在根据不同条件查询时,拼接SQL语句是多么的痛苦. 比如查询一个学生信息,可以根据学生的姓名,性别,班级,年龄,学 ...
- LeetCode(121):买卖股票的最佳时机
Easy! 题目描述: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不能在买 ...
- PDF怎么编辑,如何旋转PDF页面方向
很多的时候,无论是工作中,还是在学习中都会遇到PDF文件,对于PDF文件,熟悉的小伙伴知道,在编辑PDF文件的时候,是需要使用到PDF编辑软件的,那么,在编辑PDF文件的时候,需要旋转文件的页面,这时 ...