Azure 函数在调试 VS2017 for Mac 时无法读取/访问 local.settings.json



使用 VS2017 for Mac 在本地调试 Azure 函数时尝试从 local.settings.json 配置文件读取时返回的空/空值... 扫描互联网后,我无法确定这是否是已知问题或是否有解决方法。 这是我访问配置设置的方式:

ConfigurationManager.ConnectionStrings["connName"].ConnectionString

如果在 Windows 计算机上调试函数应用(相同的 git 代码库(,则此方法工作正常

在运行时 2.x(.net core( 上运行的 Azure 函数 v2 不再支持 ConfigurationManager。请参阅 Azure 团队在 github 上的回复。

当我在 Windows 上调试 v2 函数时,System.Configuration.ConfigurationErrorsException抛出。v1 仍然像您发现的那样运行良好。

因此,正如@mariocatch所说,尝试阅读环境变量。

两个选项供您参考。

  1. 直接读取环境变量

    string connectionString = Environment.GetEnvironmentVariable("ConnectionStrings:connName");
    
  2. ExecutionContext context添加到函数方法参数并读取本地设置。

    [FunctionName("FunctionName")]
    public static void Run(...,ExecutionContext context)
    {
    var config = new ConfigurationBuilder()
    .SetBasePath(context.FunctionAppDirectory)
    .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
    .AddEnvironmentVariables()
    .Build();
    string connectionString = config.GetConnectionString("connName");
    .....
    }
    

最新更新