0

我正在尝试使用简单的控制台应用程序访问应用程序配置。到目前为止,我有:

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>"
}

谢谢你。

凯文

4

2 回答 2

6

确保连接字符串以“Endpoint=”开头。它正在寻找键/值对,并将没有键的值解释为没有值的键。

于 2021-02-19T15:28:30.277 回答
4

AddAzureAppConfiguration方法需要一个连接字符串作为参数。您收到System.ArgumentException因为"ConnectionStrings:AppConfig"不是有效的连接字符串。

为了使用用户机密中定义的连接字符串来初始化 Azure 应用程序配置提供程序,我们可以首先使用用户机密构建一个 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();
}

于 2020-08-14T05:09:24.200 回答