ASP.Net核心应用程序和Environment.GetEnvironmentVariables()奇怪的行为

问题描述:

我在调试ASP.Net核心应用程序,并注意到有关Environment.GetEnvironmentVariables()输出的奇怪事情。 Environment.GetEnvironmentVariables()调用为我提供了包含75个条目的字典,而在“我的电脑” - >“属性” - >“环境变量”中配置的环境变量显示的条目非常少,即大约20个条目。请检查下面的屏幕截图,其中显示了来自Environment.GetEnvironmentVariables()的输出和来自我的计算机 - >属性的环境变量。 enter image description here 所以我的问题是从哪里Environment.GetEnvironmentVariables()获取这些额外的条目。我特别想知道以“ASPNETCORE”开头的条目的来源。它存储在别的地方吗?我相信这些附加条目不会存储在我的应用程序的配置文件中。ASP.Net核心应用程序和Environment.GetEnvironmentVariables()奇怪的行为

在您的用户或机器上没有的环境变量是在进程上。

当您启动应用程序时,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