使用 VS2017 for Mac 在本地调试 Azure Function 时尝试从 local.settings.json 配置文件中读取时返回空/空值...扫描互联网后,我无法确定这是否是已知的问题或是否有解决方法。这就是我访问配置设置的方式:
ConfigurationManager.ConnectionStrings["connName"].ConnectionString
如果在 Windows 计算机上调试 Function 应用程序(相同的 git 代码库),则效果很好
最佳答案
运行时 2.x(.net core) 上运行的 Azure function v2 不再支持 ConfigurationManager。请参阅Azure Team's reply on github .
当我在 Windows 上调试 v2 函数时,抛出了 System.Configuration.ConfigurationErrorsException
。正如您所发现的,v1 仍然运行良好。
正如 @mariocatch 所说,尝试读取环境变量。
两个选项供您引用。
直接读取环境变量
string connectionString = Environment.GetEnvironmentVariable("ConnectionStrings:connName");
将
ExecutionContext 上下文
添加到您的函数方法参数并读取本地设置。[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"); ..... }
关于c# - 使用 VS2017 for Mac 进行调试时,Azure 函数无法读取/访问 local.settings.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50144132/