在使用VS2017 for Mac本地调试Azure功能时尝试从local.settings.json配置文件读取时返回空/空值...扫描互联网后我无法确定这是否已知问题或是否有解决方法。这就是我访问配置设置的方式:
ConfigurationManager.ConnectionStrings["connName"].ConnectionString
如果在Windows机器上调试Function应用程序(相同的git代码库)
,这可以正常工作答案 0 :(得分:2)
在运行时2.x(.net核心)上运行的Azure功能v2不再支持ConfigurationManager。请参阅Azure Team's reply on 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");
.....
}