使用 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所说,尝试阅读环境变量。
两个选项供您参考。
-
直接读取环境变量
string connectionString = Environment.GetEnvironmentVariable("ConnectionStrings:connName");
-
将
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"); ..... }