.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。否则,它实际上不会从您的环境变量中读取。