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 ...
随机推荐
- $Django 等web框架,交互,基础入门
1 web 应用2 c/s 和bs架构3 python中的web框架 a :socket b:路由跟视图函数匹配关系 c:模板渲染 django: uwsgi/wsgiref ...
- 使用Navicat为MySQL建立定时任务
1.编写好每个小时需要指定的sql语句,我一般都是编写的一个update SQL,也可以编写好一个函数存储过程 2.点击事件,可能回看到一些事件列表,然后点击上方的“新建事件”,会打开一个事件定义框( ...
- python学习第16天。
内置函数是在原本已经有的序列的基础上,再生成新的. List的方是修改原列表. 内置函数中大部分函数的返回值大部分都是迭代器.生成器. Sorted需要遍历操作,不是单纯的迭代,所以不生成迭代器. 一 ...
- 2)django-请求生命周期
1)下图是django请求生命周期 2)详细例子
- Struts2中类数据封装的方式
第一种方式:属性驱动提供对应属性的set方法进行数据的封装.表单的哪些属性需要封装数据,那么在对应的Action类中提供该属性的set方法即可.表单中的数据提交,最终找到Action类中的setXxx ...
- Confluence 6 识别慢性能的宏
Page Profiling 给你了有关页面在载入的时候操作缓慢的邪教,你可以将下面的内容添加到调试(debug)级别: Version 3.1 及其后续版本 设置包名字为 com.atlassian ...
- 2。创建第一个angular应用,已经开发前的一些配置
现在我们开始新建一个angular5的脚手架 . 到想要建项目的目录下.比如我的 在 D:\JsProjects 进入cmd或者powershell cd 进入该文件夹下 然后开始新建,ng ne ...
- WinHex数据恢复笔记(一)
WinHex数据恢复功能强大,可以从硬件簇上扇区进行数据扫描恢复.首先对winhex的各个功能介绍.之后对实例记录一个Word文档删除后进行恢复. 1.WinHex数据恢复软件的编辑区输入与其他普通文 ...
- AppServ安装到一半卡住的问题
今天在笔记本安装AppServ的时候,运行到Installing mysql service时就卡住不动了,因为之前在自己的台式电脑安装过AppServ,当时是一步成功的,所以觉得这个问题莫名其妙,因 ...
- 论文阅读笔记二十:LinkNet: Exploiting Encoder Representations for Efficient Semantic Segmentation(CVPR2017)
源文网址:https://arxiv.org/abs/1707.03718 tensorflow代码:https://github.com/luofan18/linknet-tensorflow 基于 ...