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环境变量详解的更多相关文章

  1. net core体系-web应用程序-4net core2.0大白话带你入门-6asp.net core配置文件

    asp.net core配置文件   读取配置文件 asp.net core使用appsettings.json代替传统.net framework的web.config中的<appSettin ...

  2. net core体系-web应用程序-4net core2.0大白话带你入门-3asp.net core项目架构和配置文件解读

    asp.net core web项目目录解读   Connected Services 和传统.net web项目相比,它的功能类似于添加webservice或者wcf service的引用.暂时用不 ...

  3. net core体系-web应用程序-4net core2.0大白话带你入门-2asp.net core新建项目

    新建asp.net core项目   开发环境:Windows Server R2 2008 开发工具:Microsoft Visual Studio 2017 新建asp.net core项目 创建 ...

  4. net core体系-web应用程序-4net core2.0大白话带你入门-7asp.net core日志组件(Logger和Nlog)

    asp.net core日志组件   日志介绍 Logging的使用 1. appsettings.json中Logging的介绍 Logging的配置信息是保存在appsettings.json配置 ...

  5. net core体系-web应用程序-4net core2.0大白话带你入门-4asp.net core配置项目访问地址

    asp.net core配置访问地址  .net core web程序,默认使用kestrel作为web服务器. 配置Kestrel Urls有四种方式,我这里只介绍一种.其它方式可自行百度. 在Pr ...

  6. net core体系-web应用程序-4net core2.0大白话带你入门-11asp.net core 2.0 cookie的使用

    asp.net core 2.0 cookie的使用   本文假设读者已经了解cookie的概念和作用,并且在传统的.net framework平台上使用过. cookie的使用方法和之前的相比也有所 ...

  7. net core体系-web应用程序-4net core2.0大白话带你入门-10asp.net core session的使用

    asp.net core session的使用   Session介绍 本文假设读者已经了解Session的概念和作用,并且在传统的.net framework平台上使用过. Asp.net core ...

  8. net core体系-web应用程序-4net core2.0大白话带你入门-9asp.net core服务的生命周期

    asp.net core服务的生命周期   Transient:每一次GetService都会创建一个新的实例 Scoped:在同一个Scope内只初始化一个实例 ,可以理解为( 每一个request ...

  9. net core体系-web应用程序-4net core2.0大白话带你入门-8asp.net core 内置DI容器(DependencyInjection,控制翻转)的一点小理解

    asp.net core 内置DI容器的一点小理解   DI容器本质上是一个工厂,负责提供向它请求的类型的实例. .net core内置了一个轻量级的DI容器,方便开发人员面向接口编程和依赖倒置(IO ...

随机推荐

  1. 前端 ----jQuery的文件操作

    06-jQuery的文档操作***   之前js中咱们学习了js的DOM操作,也就是所谓的增删改查DOM操作.通过js的DOM的操作,大家也能发现,大量的繁琐代码实现我们想要的效果.那么jQuery的 ...

  2. echo和重定向

    命令: echo 作用: echo有重复的意思,会在终端中显示参数指定的文字,通常会和重定向联合使用 使用: echo 文字内容 例子: 在终端中显示hello echo hello 命令: > ...

  3. Day8--------------RPM包管理

    nginx.tar.gz:源码,编译安装 RPM:redhat package manage,二进制 增.删.查 1.增 package------>ls|less------------> ...

  4. __dict__(字典的另一种用法)

    class Foo(): def __init__(self): self.name=None self.age=19 self.addr='上海' @property def dict(self): ...

  5. VUE 脚手架项目搭建

    1. 概述 1.1 说明 vue-cli是一个官方发布vue.js项目脚手架,使用vue-cli可以快速创建vue项目.GitHub地址是:https://github.com/vuejs/vue-c ...

  6. 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 [ ...

  7. Connection reset by [server_ip] port 22 (hexo d 部署博客出错)

    问题 在使用 hexo d 部署博客和使用 Git/Github 进行 git push -u origin master 时遇到了以下问题: git -c diff.mnemonicprefix=f ...

  8. Mybaits动态Sql

    什么是动态SQL? MyBatis的强大之处便是它的动态SQL,如果你使用JDBC那么在根据不同条件查询时,拼接SQL语句是多么的痛苦. 比如查询一个学生信息,可以根据学生的姓名,性别,班级,年龄,学 ...

  9. LeetCode(121):买卖股票的最佳时机

    Easy! 题目描述: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不能在买 ...

  10. PDF怎么编辑,如何旋转PDF页面方向

    很多的时候,无论是工作中,还是在学习中都会遇到PDF文件,对于PDF文件,熟悉的小伙伴知道,在编辑PDF文件的时候,是需要使用到PDF编辑软件的,那么,在编辑PDF文件的时候,需要旋转文件的页面,这时 ...