如何在服务器上使用正确的 appsettings.json - 将 .NET Core 应用程序部署到 Windows 服务器上的 IIS?

How do you get the correct appsettings.json to be used on server - deploying .NET Core app to IIS on Windows Server?

我有一个 ASP.NET 核心网络应用程序。

并具有以下应用程序设置文件:

appsettings.DevelopmentServer.json
appsettings.Test.json
appsettings.Development.json
appsettings.Production.json

在我的开发服务器上,我将环境变量 EnvironmentName 设置为 DevelopmentServer

但它仍在使用appsettings.json。

如何让每台服务器使用正确的 appsettings.json 文件?

使用 ASPNETCORE_ENVIRONMENT 而不是 EnvironmentName 作为环境变量。

您可以参考the official docs了解更多信息

ASPNETCORE_ENVIRONMENT 环境变量确定 AppSettings 文件名,以及是否加载用户机密。

但是,有时出于某种原因您想覆盖它或添加额外的文件。例如在(单元)测试项目中。您可以像这样手动添加(额外的)JSON 文件到配置生成器:

    var config = new ConfigurationBuilder()
    .AddJsonFile("AppSettings.DevelopmentServer.json")
    .AddUserSecrets(Assembly.GetExecutingAssembly(), true).Build();

    // Access
    config["variable"];

只是将它留在这里作为其他人的想法或输入,因为我认为您的问题将通过环境变量得到解决。

以下是有关如何在启动时为整个应用程序配置您自己的 JSON 文件或额外的 JSON 文件的更多信息: Microsoft docs

真正值得考虑的是这个参数 'reloadOnChange',您可以在其中更新应用程序设置文件,同时 运行 应用程序会立即生效。