【问题标题】:Unable to read local.settings.json file when running Azure Function locally在本地运行 Azure Function 时无法读取 local.settings.json 文件
【发布时间】:2019-02-11 03:09:53
【问题描述】:

我在本地测试 Azure Functions 时尝试读取环境变量(使用 v1 .Net 4.7.1)

下面是功能代码:

[FunctionName( "test" )]
  public static async Task<HttpResponseMessage> Run( [HttpTrigger( AuthorizationLevel.Anonymous, "post", Route = null )]HttpRequestMessage req, TraceWriter log )
  {

     String s;

     log.Info( "test: Begin..." );

     s = System.Environment.GetEnvironmentVariable( "test" );

     if ( String.IsNullOrEmpty( s ) )
     {
        log.Info( "Unable to get environment key !!!!" );
     }
     else
     {
        log.Info( "Key value = " + s );
     }

  }

local.settings.json 文件包含:

{
"IsEncrypted": false,
"Values": {
   "AzureWebJobsStorage": "UseDevelopmentStorage=true",
   "AzureWebJobsDashboard": "UseDevelopmentStorage=true",
   "test": "test_value"
   }
}

函数编译运行,但永远不会返回环境键值,日志中始终包含:

 Unable to get environment key !!!!

奇怪的是我有另一个项目(与上面的代码相同),它工作得很好。程序集的唯一区别是 Microsoft.Net.Sdk.Functions DLL (1.0.19) vs (1.0.13)——当前项目(不起作用)使用的是 1.0.19——所以我降级到 1.0 .13 - 但它没有任何区别!

更新:2018 年 9 月 9 日 - 特别感谢 Karishma Tiwari 引导我走向正确的方向:

问题是(正如 Karismha 指出的那样)local.settings.json 文件没有被复制到输出路径,如下所示,通过比较项目中不起作用的设置(左侧)和正在运行的项目(右):

解决:

  1. 右击local.settings.json -> 属性
  2. 将“复制到输出目录”设置更改为:“如果较新则复制”

还有一点需要注意的是MS documentation states 声明:

"...但我们建议您使用 GetEnvironmentVariable ...",

问题解决了。

【问题讨论】:

    标签: azure-functions


    【解决方案1】:

    我建议尝试以下方法:

    1. 首先,尝试使用ConfigurationManager.AppSettings["test"] 代替 System.Environment.GetEnvironmentVariable( "test" ) 并检查您是否获得了预期的结果。

    2. 确保将 local.settings.json 文件标记为始终复制到构建输出。 (通过在 Visual Studio 中右键单击它)。这会将您的文件复制到类似于 bin\debug..的输出路径。

    如果您仍然遇到同样的问题,请告诉我。

    【讨论】:

    • 感谢卡里什玛! - 你的第二点引导我朝着正确的方向前进 - 问题是 local.settings.json 的项目设置,我已经用解决方案更新了问题。
    • 我仍然面临问题
    • +1 因为它引导我在 VSCode 中正确指导,所以必须操纵 .csproj 以强制 local.settings.json 始终复制。谢谢
    猜你喜欢
    • 2019-05-17
    • 1970-01-01
    • 2023-02-01
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多