代码之家  ›  专栏  ›  技术社区  ›  Oleg Sh

找不到azure函数config.json文件

  •  0
  • Oleg Sh  · 技术社区  · 6 年前

    我有Azure功能项目.NET核心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 回复  |  直到 6 年前
        1
  •  1
  •   Oleg Sh    6 年前

    问题是,当我们在本地启动Azure函数时,文件config.json可以通过 Directory.GetCurrentDirectory() 但在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)
    

    感谢尼古拉斯的提示