【发布时间】:2018-06-27 11:50:32
【问题描述】:
我在尝试读取用户机密时遇到问题。我在startup.cs中的代码如下:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json",
optional: false,
reloadOnChange: true);
if (env.IsDevelopment())
{
builder.AddUserSecrets<Startup>(false);
}
builder.AddEnvironmentVariables();
Configuration = builder.Build();
}
从 appsettings.json 和环境变量读取工作正常,但无论我在 secrets.json 文件中放入什么,都不会从中读取任何值。项目文件中UserSecretsId的值正确,env.IsDevelopment()为真。
配置包含三个提供程序。一个 JsonConfigurationProvider 包含来自 appsettings.json 的数据,一个 EnvironmentVariablesConfigurationProvider 包含来自环境变量的值,一个 JsonConfigurationProvider 没有数据。我认为后一个是添加用户机密的那个。但是为什么是空的呢?
【问题讨论】:
-
您是如何创建
secrets.json的?它存储在哪里? -
我正在通过 VS 2017 创建它。它存储在 %APPDATA%\Microsoft\UserSecrets\
\secrets.json 中。 user_secrets_id 的值与项目文件中的值匹配。 -
该文件是有效的 JSON 格式吗?
标签: asp.net-core configuration