Настройка базового каталога приложения Azure Functions с приложением Azure Function 2.x - PullRequest
1 голос
/ 11 марта 2019

Мне нужно установить базовый каталог приложения функций Azure на azurewebjobsscriptroot, как показано ниже, но получено исключение

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

System.ArgumentException: путь должен быть абсолютным.Имя параметра: root в Microsoft.Extensions.FileProviders.PhysicalFileProvider..ctor (корень строки, фильтры ExclusionFilters) в Microsoft.Extensions.Configuration.FileConfigurationExtensions.SetBasePath (построитель IConfigurationBuilder, базовая строка String) функция Azure

1008 *1006* *1007* * 10082.x

VS 2017

ExecutionContext является недействительным для нефункциональных методов через IoC, альтернатива ExecutionContext.FunctionAppDirectory

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

1 Ответ

1 голос
/ 11 марта 2019

Вы, вероятно, хотите сначала расширить путь перед его использованием. Таким образом, переменная (и) среды, встроенная в строку, может быть заменена эквивалентным значением переменной. В результате чего действительный базовый путь для конфигурации.

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) Метод

...