如何在服务器上使用正确的 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',您可以在其中更新应用程序设置文件,同时 运行 应用程序会立即生效。
我有一个 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',您可以在其中更新应用程序设置文件,同时 运行 应用程序会立即生效。