这是我尝试过的:
{
"Environment": "Production"
}
娜达。
为了使用appsettings.Production.json文件,您到底如何指定生产机器?
答案 0 :(得分:0)
没关系,我知道了。我很笨。
首先,检查Properties/launchSettings.json
文件中“ DOTNET_ENVIRONMENT”的值。对于包括我在内的大多数人来说,这可能就足够了。
实际上,默认情况下,它还会在项目根目录中查找hostsettings.json
文件。就我而言,它只是被launchSettings
环境变量声明所覆盖。
但是,如果要使用我在问题中提到的JSON方法,但使用默认文件名或位置以外的其他名称,则必须在ConfigureHostConfiguration
链中调用IHostBuilder
并添加文件。
像这样:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureHostConfiguration(
builder =>
{
builder.AddJsonFile("abitraryFileName.json");
})
.ConfigureServices(
(hostContext, services) =>
{
services.AddHostedService<Worker>();
services.Configure<Settings>(
hostContext.Configuration.GetSection("Settings"));
});
确实确实默认将前缀“ DOTNET_”而不是“ ASPNETCORE_”作为前缀,因此请确保在生产机器/ VM /服务上都设置了两者。