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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM