尝试读取用户机密时遇到问题。我在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()为true。
配置包含三个提供程序。一个JsonConfigurationProvider包含appsettings.json中的数据,一个EnvironmentVariablesConfigurationProvider包含环境变量中的值,一个JsonConfigurationProvider没有数据。我认为后一种是添加用户机密的一种。但是为什么它是空的?
答案 0 :(得分:0)
我不得不将一个项目分成两个部分,但是我一生都无法在生成的项目中加载秘密,它具有完全相同的项目环境,包括VS2017项目中的secrets.json
树...。但是它不会加载。
在检查每个文件上的实际.csproj
文件时,唯一的区别是,生成的项目没有UserSecretsId
条目,因此我只用鼠标右键单击项目,点击{{1 }},然后关闭随后的Json编辑器,而无需进行修改。
下一个运行项目时,我的原始Manage User Secrets
已加载...而不是空白的。
看来,如果您的项目文件夹中有secrets.json
,它将覆盖secrets.json
创建的文件,而Manage User Secrets
在C:\Users\<user>\AppData\Roaming\Microsoft\UserSecrets\<userSercretsId>
中创建文件
答案 1 :(得分:-1)
尝试不带错误。 例如builder.AddUserSecrets();
我有同样的问题。