在Visual Studio 2017中的local.settings.json本地开发中缺少AzureWebJobsStorage的值

rub*_*pes 11 azure azure-functions visual-studio-2017

我正在本地开发一个azure函数,打开了Storage Emulator和de Storage Explorer.

文件树

文件树

local.settings.json

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "AzureWebJobsDashboard": "UseDevelopmentStorage=true"
  },
  "ConnectionStrings": {
    "PlantaoEntities": {
      "ConnectionString": "CENSORED",
      "ProviderName": "System.Data.EntityClient"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是在尝试运行代码时收到以下消息:

缺少local.settings.json中AzureWebJobsStorage的值.除HTTP之外的所有触发器都需要这样做.您可以运行'func azure functionapp fetch-app-settings'或在local.settings.json中指定连接字符串

它在重建解决方案之前工作,如果我尝试func azure functionapp fetch-app-settings <functionAppName>它尝试从天蓝色门户网站本身检索信息.

Sib*_*enu 61

当我Azure Function在我的Visual Studio 2019.

在此处输入图片说明

我已经将Copy To Output Directory操作设置为Copy always,但仍然遇到相同的错误。问题是 Azure Functionlocal.settings.json文件不支持nested json. 您可以在此处跟踪此问题。

我在local.settings.json前面有值。

{
  "IsEncrypted": false,
  "Values": {
    "Custom": {
      "Tickets": {
        "Channels": [
          "One",
          "Two"
        ]
      }
    },
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "ServiceBusConnectionString": ""
  }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,Values 中有一个额外的嵌套 json (Custom) 对象,这就是我收到此错误的原因。为了解决这个问题,我必须添加一个名为的新配置文件configuration.json并在那里添加我的自定义值。

"Custom": {
      "Tickets": {
        "Channels": [
          "One",
          "Two"
        ]
      }
    }
Run Code Online (Sandbox Code Playgroud)

解决方法是使用ConfigurationBuilder或 读取该文件File.ReadAllText。您还可以将整个 JSON 添加为纯字符串local.settings.json而不是 JSON 对象。

希望能帮助到你。

  • 谢谢,这就是给我的。就我而言,我需要数组,因此我像这样格式化了自定义值:/sf/answers/2384421791/,并且它有效。 (3认同)

rub*_*pes 19

解决方案是右键单击local.settings.json,转到属性,将"复制到输出目录"从"不复制"更改为"始终复制".现在,CLI从Visual Studio 2017中运行时获取设置.

https://github.com/Azure/azure-functions-core-tools/issues/223#issuecomment-326225219

  • @SamiHuutoniemi 在哪里添加此配置? (8认同)
  • 仅当您的项目位于 VS 上时,而不是带有 Node 的 vscode 时,才会出现这种情况。 (3认同)
  • 没有“属性” (2认同)

Ben*_*min 17

仅供参考,当 for 的值"AzureWebJobsStorage"实际上为空 ( "")时,您也会收到此错误。您可以将其设置为例如"UseDevelopmentStorage=true"用于开发。

请注意,这需要在本地安装存储模拟器。请参阅文档


kag*_*oki 15

local.settings.json当您的文件有 json 错误时,例如以下逗号,也会出现相同的错误,,


小智 8

刚刚在 VS2019 上看到了这个错误并通过重新排序 local.settings.json 解决了它,以便 IsEncrypted 值在“值”之后

{
   "Values": {
        "AzureWebJobsStorage": "removed",
      },
   "IsEncrypted": false
}
Run Code Online (Sandbox Code Playgroud)

  • WT......这有效。我的 local.settings.json 中没有任何问题,因为它之前使用相同的内容。突然它停止工作了。尝试了一切,清理解决方案,重建,手动删除 bin 和 obj 目录,重新启动笔记本电脑......没有任何效果。现在确实如此! (2认同)

Ren*_*é K 8

我知道问题与 Visual Studio 有关,但我可以通过在 Visual Studio Code 中执行以下操作来修复错误:

  1. 安装“Azurite”扩展
  2. F1并输入Azurite:开始
  3. 照常调试 Azure Function(按F5

有关更多详细信息,请参阅Azurite 的官方文档


Bre*_*ler 6

如果上述任何解决方案不适用于需要在 local.settings.json 中嵌套 JSON 的人,只需按如下所示展平嵌套对象:

这:

"Config": {
 "MyCusomValue": "Value"
}  
Run Code Online (Sandbox Code Playgroud)

变成:

"Config:MyCustomValue": "Value"
Run Code Online (Sandbox Code Playgroud)


Rob*_*eer 5

对于任何可能遇到过这种情况并因为没有嵌套 JSON 并且其<ItemGroup>值正确而挠头的人,这可能对您有所帮助。由于local.settings.json被忽略,我已经使用文件系统复制了一个,尽管 Visual Studio for Mac 在解决方案资源管理器中显示它,但无论我更改为什么,它显然都没有找到它<CopyToOutputDirectory>。关闭并重新打开我的解决方案后,问题就消失了。


小智 5

解决方案 - Azure Functions Node.js/Typescript (VSCODE)

该解决方案适合本地开发。请注意,这需要本地安装存储模拟器。请参阅文档

1.) 从项目根目录中,打开并将值从local.settings.json更新为。AzureWebJobsStorage""UseDevelopmentStorage=true

例子:"AzureWebJobsStorage": "UseDevelopmentStorage=true",

2.) 重新启动功能应用程序

示例 local.setting.json

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true"
    "FUNCTIONS_WORKER_RUNTIME": "node",
    "AZURE_STORAGE_CONNECTION": "Optional_your_remote_storage_string_in_azure"
    "AZURE_STORAGE_CONTAINER_NAME": "optional_remote_container_name"
  },
  "Host": {
    "LocalHttpPort": 7071,
    "CORS": "*",
    "CORSCredentials": false
  }
}
Run Code Online (Sandbox Code Playgroud)