|
0
|
| user1451111 · 技术社区 · 3 年前 |
|
|
1
1
请参阅 here 有关如何确定环境的完整文档 其要点是读取DOTNET_ENVIRONMENT和ASPNETCORE_Environmental来确定环境。根据您使用的构建器,其中一个可以优先于另一个。
或者,也可以提供环境作为命令行参数,如下所示:
最后,也可以将环境作为参数提供给构建器本身:
尽管我不得不说我从来没有这么做过。总而言之,考虑到有多少可能的来源,读取环境变量而不是使用IHostingEnvironment绝对不是一个好主意。 最后一件事。环境默认为“生产”,除非明确使用默认值,否则环境变量不会执行此操作。 |
|
2
1
在进入你的主要问题之前,它需要一个简短的背景,但我保证它会让你知道你好奇的地方。 IHostEnvironment。环境名称: 通常地 IHostEnvironment.EnvironmentName 的asp.net核心版本早于6,它源自 IHostEnvironment Interface 它通过从中读取信息,向我们返回有关应用程序正在运行的托管环境的信息 launchSettings.json 如下所示:
环境GetEnvironmentVariable(): 来自dotnet 6 IHostEnvironment。环境名称 不再使用,取而代之的是 Environment.GetEnvironmentVariable() 它还从中检索环境变量名 launchSettings.json 它派生自Environment静态类,如下所示:
因此 IHostEnvironment。环境名称 早于dotnet6和 环境GetEnvironmentVariable() 晚于dotnet6的都为我们提供了应用环境的信息。例如,无论是开发、生产还是阶段。
IHostEnvironment中的DOTNET_ENVIRONMENT。环境名称: 实际上,取决于 DOTNET_ENVIRONMENT 和 ASPNETCORE_ENVIRONMENT 我们可能会经历不同的结果。因为 DOTNET_ENVIRONMENT 值覆盖 ASPNETCORE_ENVIRONMENT 当你在asp.net核心版本中使用时,它会覆盖6;因此,您仍然可以准确地获得环境变量的名称。如下所示:
环境中的DOTNET_ENVIRONMENT。GetEnvironmentVariable(): 然而,它在asp.net核心6和更高版本中的作用并不一致,这与asp.net内核6的旧版本不同。因为 ASPNETCORE_ENVIRONMENT 具有更高的优先级 DOTNET_ENVIRONMENT 你最终会得到完全不同的结果。对于 DOTNET_ENVIRONMENT 你会变成空的 EnvironmentVariable 您可以在下面看到:
注: 总之,它们都用于在运行时获取应用程序环境变量信息。但在DOTNET_ENVIRONMENT优先级上的denpending,它们的值不同。如果你还想了解更多细节,你可以 check our official document here |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |