根据.NET Core documentation,我应该能够使用环境变量设置应用程序名称。
环境变量:ASPNETCORE_APPLICATIONKEY
我认为情况并非如此。我在WebHostDefaults.ApplicationKey
中添加了Program.cs
设置,但仍然无法用环境变量覆盖它。
private static IWebHost BuildWebHost(string[] args)
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("hosting.json", true)
.AddEnvironmentVariables("ASPNETCORE_")
.AddCommandLine(args)
.Build();
return WebHost.CreateDefaultBuilder(args)
.ConfigureLogging((context, builder) => { builder.ClearProviders(); })
.UseConfiguration(config)
.PreferHostingUrls(true)
.UseStartup<Startup>()
.UseSetting(WebHostDefaults.ApplicationKey, "CustomApplicationName")
.Build();
}
在startup.cs
中,我仅看到“ CustomApplicationName”,而不是环境变量。
public class Startup
{
public Startup(IConfiguration configuration, IHostingEnvironment hostingEnvironment)
{
Configuration = configuration;
Log.Information($"Startup of application {hostingEnvironment.ApplicationName} in Environment Mode {hostingEnvironment.EnvironmentName}");
}
}
我也尝试在环境变量名称中使用双下划线。
我在Mac OS上运行。
答案 0 :(得分:1)
如其他答案所述,正确的环境变量名称为ASPNETCORE_APPLICATIONNAME
,并记录在here中。但是,即使从.NET Core 3.1开始,它也不起作用。有GitHub issue描述了此错误的详细信息,但实际上,UseStartup<>()
方法中的代码将 ApplicationName 设置回其默认值,即默认名称。组装。
即使您可以使用UseSetting()
方法将其覆盖回来,基于this related GitHub issue讨论线程中的警告,我也不会这样做。目前最安全的选择似乎是使用您自己的独立环境变量。
答案 1 :(得分:0)
我怀疑这是文档“发明”的,实际上并未实现。
ASP.NET Core托管在github上。我did a search。 ASPNETCORE_APPLICATIONKEY
出现的唯一位置是文档本身。出现的唯一问题/ PR是https://github.com/aspnet/Docs/pull/7493,这是将环境变量添加到文档中并包含以下有深刻见解的声明:
我只是组成ASPNETCORE_APPLICATIONKEY吗?那是东西吗?