【问题标题】:Setting Azure Functions app's base directory wtih Azure Function app 2.x使用 Azure Function 应用 2.x 设置 Azure Functions 应用基目录
【发布时间】:2019-03-11 10:13:20
【问题描述】:

我需要将 Azure Functions 应用的基目录设置为 azurewebjobsscriptroot,如下所示,但出现异常

var config = new ConfigurationBuilder()
    .SetBasePath("%HOME%\site\wwwroot")   //error
    .AddJsonFile("Settings.json", optional: true, reloadOnChange: true)
    .AddEnvironmentVariables()
    .Build();

System.ArgumentException :路径必须是绝对的。参数名称: 根在 Microsoft.Extensions.FileProviders.PhysicalFileProvider..ctor(字符串 根,ExclusionFilters 过滤器)在 Microsoft.Extensions.Configuration.FileConfigurationExtensions.SetBasePath(IConfigurationBuilder builder,String basePath)

Azure 函数 2.x

VS 2017

ExecutionContext is null to non-function methods via IoC, alternative to ExecutionContext.FunctionAppDirectory

https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings#azurewebjobsscriptroot

【问题讨论】:

    标签: c# azure asp.net-core azure-functions


    【解决方案1】:

    您可能希望在使用之前先扩展路径。这样,嵌入在字符串中的环境变量可以替换为变量的等效值。导致配置的有效基本路径。

    var AzureWebJobsScriptRoot = "%HOME%\site\wwwroot";
    
    var expandedRootPath = Environment.ExpandEnvironmentVariables(AzureWebJobsScriptRoot);
    
    var config = new ConfigurationBuilder()
        .SetBasePath(expandedRootPath)
        .AddJsonFile("Settings.json", optional: true, reloadOnChange: true)
        .AddEnvironmentVariables()
        .Build();
    

    参考Environment.ExpandEnvironmentVariables(String) Method

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-28
      • 2021-01-05
      相关资源
      最近更新 更多