.NET Core Web API 没有正确读取环境
.NET Core Web API not reading environment correctly
我有一个 .NET Core 2.0 Web API 无法读取特定于环境的 app.settings 文件。据我所知,我已遵循所有相关步骤。
这是我的 Startup.cs
构造函数:
public Startup(IHostingEnvironment env)
{
var config = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables();
}
然后我有一个 appsettings.json
文件结构:
appsettings.json
-appsettings.debug.json
-appsettings.release.json
-appsettings.production.json
并且在部署我的 API 的服务器上我有一个系统环境变量 key/value 对
Variable = ASPNETCORE_ENVIRONMENT Value = Release
但是当我调用 API 时,会使用 appsettings.production.json
值,当找不到 ASPNETCORE_ENVIRONMENT
的环境变量时(据我所知)这是默认值.
关于我的设置可能缺少什么导致此默认行为的想法?
您没有指定,但我假设您的 运行 在 IIS 中。如果是这种情况,您需要编辑应用程序池的高级属性并将“加载用户配置文件”选项设置为 true。否则,它实际上不会从您的环境变量中读取。
我有一个 .NET Core 2.0 Web API 无法读取特定于环境的 app.settings 文件。据我所知,我已遵循所有相关步骤。
这是我的 Startup.cs
构造函数:
public Startup(IHostingEnvironment env)
{
var config = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables();
}
然后我有一个 appsettings.json
文件结构:
appsettings.json
-appsettings.debug.json
-appsettings.release.json
-appsettings.production.json
并且在部署我的 API 的服务器上我有一个系统环境变量 key/value 对
Variable = ASPNETCORE_ENVIRONMENT Value = Release
但是当我调用 API 时,会使用 appsettings.production.json
值,当找不到 ASPNETCORE_ENVIRONMENT
的环境变量时(据我所知)这是默认值.
关于我的设置可能缺少什么导致此默认行为的想法?
您没有指定,但我假设您的 运行 在 IIS 中。如果是这种情况,您需要编辑应用程序池的高级属性并将“加载用户配置文件”选项设置为 true。否则,它实际上不会从您的环境变量中读取。