这是我尝试过的:
hostsettings.json
到执行项目的根目录:{
"Environment": "Production"
}
Run Code Online (Sandbox Code Playgroud)
纳达。
为了使用该appsettings.Production.json
文件,您究竟如何指定生产机器?
J.D*_*len 11
没关系,我想通了。我很笨
首先,检查您的Properties/launchSettings.json
文件中的“DOTNET_ENVIRONMENT”值。这对包括我在内的大多数人来说可能已经足够了。
事实上,它还会在hostsettings.json
默认情况下在项目根目录中查找文件。在我的情况下,它只是被launchSettings
环境变量声明覆盖了。
但是,如果您想使用我在问题中提到的 JSON 方法,但使用默认文件名或位置以外的其他内容,则必须ConfigureHostConfiguration
在IHostBuilder
链中调用并显式添加文件。
像这样:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureHostConfiguration(
builder =>
{
builder.AddJsonFile("arbitraryFileName.json");
})
.ConfigureServices(
(hostContext, services) =>
{
services.AddHostedService<Worker>();
services.Configure<Settings>(
hostContext.Configuration.GetSection("Settings"));
});
Run Code Online (Sandbox Code Playgroud)
它确实默认使用“DOTNET_”作为前缀而不是“ASPNETCORE_”,因此请确保在您的生产机器/VM/服务上都设置了两者。
归档时间: |
|
查看次数: |
4449 次 |
最近记录: |