Azure函数-无法读取variable.json文件

Azure函数-无法读取variable.json文件,azure,azure-functions,Azure,Azure Functions,我有一些变量将被函数的业务逻辑部分使用。因此,我没有将它们添加到appsetting.json文件中,而是添加了一个单独的文件variable.json 在我的机器上测试正常,但部署后,功能似乎找不到它。我犯了一个错误: 此文件的属性如下图所示。(构建操作以前没有,但即使内容也没有更改) 下图显示了它在root中的外观 由于这个原因,任何调用的响应都将是“函数主机未运行” 读取此文件的代码(path=“Variables.json”) 私有静态列表GetVariables(字符串路径) {

我有一些变量将被函数的业务逻辑部分使用。因此,我没有将它们添加到appsetting.json文件中,而是添加了一个单独的文件variable.json 在我的机器上测试正常,但部署后,功能似乎找不到它。我犯了一个错误:

此文件的属性如下图所示。(构建操作以前没有,但即使内容也没有更改)

下图显示了它在root中的外观

由于这个原因,任何调用的响应都将是“函数主机未运行”

读取此文件的代码(path=“Variables.json”)

私有静态列表GetVariables(字符串路径)
{
字符串json=File.ReadAllText(路径);
var variables=JsonConvert.DeserializeObject(json);
返回变量;
}

有人知道为什么会发生这种情况吗?

问题是因为当我们在本地启动Azure函数时,
目录.GetCurrentDirectory()
可以使用文件
varible.json
,但发布在Azure portal上的是
目录.GetCurrentDirectory()+@“\site\wwwroot”

要获得正确的文件夹路径,可以使用以下代码:

public static HttpResponseMessage Run(HttpRequestMessage req, ExecutionContext context)
{
    var path = System.IO.Path.Combine(context.FunctionDirectory, "varibale.json");
    // ...
}
var executioncontextoptions = builder.Services.BuildServiceProvider()
    .GetService<IOptions<ExecutionContextOptions>>().Value;
var currentDirectory = executioncontextoptions.AppDirectory;
对于startup.cs,可以使用以下代码:

public static HttpResponseMessage Run(HttpRequestMessage req, ExecutionContext context)
{
    var path = System.IO.Path.Combine(context.FunctionDirectory, "varibale.json");
    // ...
}
var executioncontextoptions = builder.Services.BuildServiceProvider()
    .GetService<IOptions<ExecutionContextOptions>>().Value;
var currentDirectory = executioncontextoptions.AppDirectory;
var executioncontextoptions=builder.Services.BuildServiceProvider()
.GetService().Value;
var currentDirectory=executioncontextoptions.AppDirectory;

你能展示一下如何使用variables.json的代码吗?@BowmanZhu我已经用代码更新了帖子谢谢你的回答!有什么办法可以在启动时得到这个吗?此上下文通过func运行时而不是启动时可用