找不到Azure Function config.json文件

时间:2019-01-21 21:45:38

标签: c# configuration azure-functions

我有Azure Function项目.NET Core 2.2 我为功能添加了具有不同配置的config.json文件,并设置了“始终复制”选项。对于我的本地项目来说效果很好。

enter image description here

但是在发布到Azure之后不起作用:

  

找不到配置文件'config.json',没有找到   可选的。物理路径为“ D:\ Windows \ system32 \ config.json”。

我在函数内部使用了它:

    var config = new ConfigurationBuilder()
         .SetBasePath(Directory.GetCurrentDirectory())
         .AddJsonFile("config.json")
         .Build();

    IDomainActions domainActions = new DomainActions(config);

为什么如此,怎么了?

1 个答案:

答案 0 :(得分:2)

问题是因为当我们在本地启动Azure Function时,Directory.GetCurrentDirectory()可以使用文件config.json,但是在Azure门户上发布的文件是Directory.GetCurrentDirectory() + @"\site\wwwroot"

要找到统一的方法,我可以通过以下方式做到这一点:

        var config = new ConfigurationBuilder()
             .SetBasePath(context.FunctionAppDirectory)
             .AddJsonFile("config.json")
             .Build();

其中context是输入参数:

    public async static Task Run(
        [QueueTrigger("domain-registation", Connection = "StorageConnectionString")]DomainForRegistration queueItem,
        ExecutionContext context,
        ILogger log)

谢谢尼古拉斯的提示