问题描述
我正在尝试通过一个简单的控制台应用程序访问应用程序配置。到目前为止,我有:
static void Main(string[] args)
{
IConfiguration config = new ConfigurationBuilder()
.AddUserSecrets("e7315677-d6aa-41ab-b7cc-8e801a7c8ae9")
.AddAzureAppConfiguration("ConnectionStrings:AppConfig")
.Build();
Console.WriteLine("Hello World!");
}
但是抛出了一个异常提示
System.ArgumentException:'连接字符串没有关键字'ConnectionStrings:AppConfig'的值。'
我已将此连接字符串放在secrets.json中,我知道它是有效的。我在做什么错了?
{
"ConnectionStrings:AppConfig": "<my connection string>"
}
谢谢。
凯文
解决方法
确保连接字符串以“Endpoint=”开头。它正在寻找键/值对,并将没有键的值解释为没有值的键。
, AddAzureAppConfiguration
方法需要一个连接字符串作为参数。因为System.ArgumentException
不是有效的连接字符串,所以您收到"ConnectionStrings:AppConfig"
。
为了使用用户密钥中定义的连接字符串来初始化Azure App Configuration提供程序,我们首先可以使用用户密钥构建IConfiguration实例,然后使用它来访问连接字符串属性。这是您的代码的修改后的版本。
static void Main(string[] args)
{
IConfiguration intermediate = new ConfigurationBuilder()
.AddUserSecrets("e7315677-d6aa-41ab-b7cc-8e801a7c8ae9")
.Build();
IConfiguration configuration = new ConfigurationBuilder()
.AddAzureAppConfiguration(intermediate["ConnectionStrings:AppConfig"])
.Build();
}