从控制台应用程序访问Azure应用配置

问题描述

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

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();
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...