当前,默认情况下,Azure函数的基本路径设置为“ D:\ home \ site \ wwwroot”。例如,发布时,VS会将应用程序上传到此文件夹。
我需要从此文件夹中读取配置文件。我们遇到ExecutionContext is null via dependency injection via constructor
的问题如果将来更改路径,则设置新的环境变量可能会导致问题。
我的问题是我该如何使用可靠且稳定的,通过构造函数与DI配合使用的应用基本路径。
天蓝色功能2.x
VS 2017
答案 0 :(得分:0)
您可以使用function.json获得配置密钥对。 例如:
System.Environment.GetEnvironmentVariable(name, EnvironmentVariableTarget.Process);
和在function.json中,您可以这样做: “ mykey”:“ myvalue”
{
"generatedBy": "Microsoft.NET.Sdk.Functions-1.0.24",
"configurationSource": "attributes",
"bindings": [
{
"direction":"in",
"type": "timerTrigger",
"useMonitor": true,
"runOnStartup": false,
"name": "myTimer",
"mykey": "myvalue"
}
],
"disabled": false,
"scriptFile": "../bin/**.dll",
"entryPoint": "**.Run"
}
答案 1 :(得分:0)
有一个指向home
目录的环境变量。这不会改变,因为包括功能应用程序在内的许多服务都依赖它。下面是函数运行时如何在Azure环境中获取它的方法。
string home = GetEnvironmentVariable("HOME");
Path = System.IO.Path.Combine(home, "site", "wwwroot");