默认的Azure Function应用程序基本路径D:\ home \ site \ wwwroot Azure Function 2.x

时间:2019-03-16 13:05:47

标签: azure azure-functions

当前,默认情况下,Azure函数的基本路径设置为“ D:\ home \ site \ wwwroot”。例如,发布时,VS会将应用程序上传到此文件夹。

我需要从此文件夹中读取配置文件。我们遇到ExecutionContext is null via dependency injection via constructor

的问题

如果将来更改路径,则设置新的环境变量可能会导致问题。

我的问题是我该如何使用可靠且稳定的,通过构造函数与DI配合使用的应用基本路径。

天蓝色功能2.x

VS 2017

2 个答案:

答案 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");