• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

asp.net core环境变量详解

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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做的更改就不会耽误那么久了。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap