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

  • 相关阅读:
    iOS NSUserDefaults 存储可变数组问题
    iOS之[文件下载 / 大文件下载 / 断点下载]
    macOS 新手开发:第 2 部分
    iOS 游戏素材
    iOS 动画
    macOS 开发
    iOS 之访问权限以及跳转到系统界面
    蓝桥杯—ALGO-18 单词接龙(DFS)
    蓝桥杯—ALGO-12 幂方分解(递归递推)
    蓝桥杯—ALGO-131 Beaver's Calculator
  • 原文地址:https://www.cnblogs.com/zxtceq/p/14166616.html
Copyright © 2020-2023  润新知