Azure functions 在本地运行Azure函数时无法读取local.settings.json文件
我试图在本地测试Azure函数时读取环境变量(使用v1.NET4.7.1) 以下是功能代码: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 ) {
[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文件没有被复制到输出路径,通过比较项目中不工作的设置(左侧)和正在工作的项目(右侧),如下所示:
要解决:
问题已解决。我建议尝试以下操作:
ConfigurationManager.AppSettings[“test”]
代替System.Environment.GetEnvironmentVariable(“test”),并检查是否得到了预期的结果如果您仍然看到相同的问题,请告诉我。谢谢Karishma!--你的第二点引导我朝着正确的方向前进-问题是local.settings.json的项目设置,我已经用解决方案更新了这个问题。我仍然面临+1问题,因为它在VSCode中引导我朝着正确的方向前进,必须操纵.csproj以强制local.settings.json始终复制。谢谢