Contents

IIS 部署 .Net Core 設定環境變數方法

在驗證環境設定全域環境變數ASPNETCORE_ENVIRONMENT=Staging,但我看環境沒有生效…。我後來嘗試開exe有吃到,猜測是 IIS 問題,最後找到這篇。

參考:[IIS] 從IIS設定環境變數指定ASP.NET Core站台的執行環境 | Ian Chen - 點部落

方法1: 系統設定環境變數(推薦)

後來入職進去,發現公司測試環境沒有在 IIS 設定相關設定,這就激起我的好奇心。發現他是用系統環境變數用的。

https://user-images.githubusercontent.com/75846914/272152360-c0365dec-6ee6-4907-a226-bea001678cfa.png

因為我突然想到,在學 .Net 課程時候有提到,相關設定環境變數後需要重啟命令提示字元,讓我猜測 IIS 環境變數也應該遇到一樣問題。後續重啟 IIS 服務可順利抓到環境變數。

1
iisreset /restart

https://user-images.githubusercontent.com/75846914/272152610-6dd8fc85-c3e1-485f-974c-019a61e6c211.png

Warning
重啟IIS上面伺服器、站台都沒有用,需要重啟IIS服務才會生效,這邊重開機理論上也可以吃到。

這種方法應該比較方便,網路很多教學都是在 IIS 設定環境變數,我這邊也有嘗試看看。可以繼續往下看。

方法2: IIS 上設定環境變數

IIS首頁 or 站台
設定編輯器
區段選擇 “system.webServer/aspNetCore”
environmentVariables

四個步驟花了不少時間,截圖記錄一下。

Sites選擇設定編輯器。我建議選擇主機全域設定,正常主機上面程式應該都會放相同環境,如測試環境只會放測試程式。

Tip
Sites專案站台也可以設定,但相對每個專案站台都要設定,所以還是建議設定在一個地方。

https://i.imgur.com/D8aHhFn.png

進去點擊專案會發現沒看到system.webServer/aspNetCore,但其實要點下圖紅框。

https://i.imgur.com/prIGn62.png

https://i.imgur.com/grZOby3.png

https://i.imgur.com/jMYFKs3.png

再來把該打的環境變數打上去就OK了。

https://i.imgur.com/e3Fp7Sy.png

Tip
P.S. 選主機是全域站台設定,而站台是針對一個站台設定,選站台他是寫在站台的Web.Config,所以重新部署時如果蓋掉該檔就會失效。
Warning
這邊假如你有用 FFMpegCore 的話,需要注意也需要重啟 IIS 。

參考相關文章