Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure functions 在本地运行Azure函数时无法读取local.settings.json文件_Azure Functions - Fatal编程技术网

Azure functions 在本地运行Azure函数时无法读取local.settings.json文件

Azure functions 在本地运行Azure函数时无法读取local.settings.json文件,azure-functions,Azure Functions,我试图在本地测试Azure函数时读取环境变量(使用v1.NET4.7.1) 以下是功能代码: [FunctionName( "test" )] public static async Task<HttpResponseMessage> Run( [HttpTrigger( AuthorizationLevel.Anonymous, "post", Route = null )]HttpRequestMessage req, TraceWriter log ) {

我试图在本地测试Azure函数时读取环境变量(使用v1.NET4.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 );
     }

  }
函数编译并运行,但从未返回环境键值,日志始终包含:

{
"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)与(1.0.13)——当前项目(不起作用)使用的是1.0.19——因此我将其降级为1.0.13——但没有任何区别

更新:2018年9月9日-特别感谢Karishma Tiwari带领我朝着正确的方向前进:

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

要解决:

  • 右键单击local.settings.json->Properties
  • 将“复制到输出目录”设置更改为:“如果较新,则复制”
  • 需要注意的另一点是:

    “…但我们建议您使用GetEnvironmentVariable…”


    问题已解决。

    我建议尝试以下操作:

  • 首先,尝试使用
    ConfigurationManager.AppSettings[“test”]
    代替System.Environment.GetEnvironmentVariable(“test”),并检查是否得到了预期的结果

  • 确保将local.settings.json文件标记为始终复制到生成输出。(在Visual studio中右键单击它)。这将把文件复制到类似于bin\debug.的输出路径


  • 如果您仍然看到相同的问题,请告诉我。

    谢谢Karishma!--你的第二点引导我朝着正确的方向前进-问题是local.settings.json的项目设置,我已经用解决方案更新了这个问题。我仍然面临+1问题,因为它在VSCode中引导我朝着正确的方向前进,必须操纵.csproj以强制local.settings.json始终复制。谢谢