2017-03-08 96 views
1

我在調試ASP.Net核心應用程序,並注意到有關Environment.GetEnvironmentVariables()輸出的奇怪事情。 Environment.GetEnvironmentVariables()調用爲我提供了包含75個條目的字典,而在「我的電腦」 - >「屬性」 - >「環境變量」中配置的環境變量顯示的條目非常少,即大約20個條目。請檢查下面的屏幕截圖,其中顯示了來自Environment.GetEnvironmentVariables()的輸出和來自我的計算機 - >屬性的環境變量。 enter image description here 所以我的問題是從哪裏Environment.GetEnvironmentVariables()獲取這些額外的條目。我特別想知道以「ASPNETCORE」開頭的條目的來源。它存儲在別的地方嗎?我相信這些附加條目不會存儲在我的應用程序的配置文件中。ASP.Net核心應用程序和Environment.GetEnvironmentVariables()奇怪的行爲

回答

1

在您的用戶或機器上沒有的環境變量是在進程上。

當您啓動應用程序時,Visual Studio會設置其中的一些。您應該可以在項目的「屬性」中修改它們。

在Solution Explorer中右鍵單擊您的項目,然後單擊屬性

打開調試選項卡,在這裏您可以添加/編輯/刪除環境變量。

Environment variables in VS project properties

這些環境變量都存儲在性能/ launchSettings.json。

但是,這個答案並沒有完全回答這個問題,還有一些環境變量也來自其他地方。它們可能由ASP.NET Core本身/ IIS模塊/ IIS Express設置。

+1

另請參閱:此處引用的「System.EnvironmentVariableTarget」https://msdn.microsoft.com/en-us/library/40df59yb(v=vs.110).aspx –

+0

感謝Juunas。我已經檢查過了,但是屏幕截圖中只顯示了一個條目,但Environment.GetEnvironmentVariables()返回的條目幾乎有50個條目找不到源代碼。 –

+0

非常真實。我真的不確定那些來自哪裏,可能是ASP.NET Core,可能是IIS Express。 – juunas