【问题标题】:Missing value for AzureWebJobsStorage in local.settings.json local development in Visual Studio 2017Visual Studio 2017 中 local.settings.json 本地开发中 AzureWebJobsStorage 的缺失值
【发布时间】:2018-02-21 13:57:18
【问题描述】:

我正在本地开发一个 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"
    }
  }
}

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

local.settings.json 中 AzureWebJobsStorage 的值缺失。这对于除 HTTP 之外的所有触发器都是必需的。您可以运行“func azure functionapp fetch-app-settings”或在 local.settings.json 中指定连接字符串

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

【问题讨论】:

    标签: azure visual-studio-2017 azure-functions


    【解决方案1】:

    当我在 Visual Studio 2019 中运行 Azure Function 时遇到了同样的错误。

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

    如前所述,我在 local.settings.json 中有值。

    {
      "IsEncrypted": false,
      "Values": {
        "Custom": {
          "Tickets": {
            "Channels": [
              "One",
              "Two"
            ]
          }
        },
        "AzureWebJobsStorage": "",
        "FUNCTIONS_WORKER_RUNTIME": "dotnet",
        "ServiceBusConnectionString": ""
      }
    }
    

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

    "Custom": {
          "Tickets": {
            "Channels": [
              "One",
              "Two"
            ]
          }
        }
    

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

    希望对你有帮助。

    【讨论】:

    • 谢谢,这是给我的。就我而言,我需要数组,因此我将自定义值格式化为:stackoverflow.com/a/34063168/348375,它起作用了。
    • 谢谢,这也发生在我身上:)
    • 这个答案现在已经保存了两次,因为我忘记了限制,并且在使用 vs2022 创建的全新 .net 6 功能应用程序中遇到了同样的问题。我看到这个问题已经过时了,不知道为什么它仍然是一个问题。如果 appsetting.json 和 local.settings.json 的行为相同会容易得多,这样我就不必跟踪这样的东西了。
    【解决方案2】:

    解决方案是右键单击 local.settings.json,转到 属性,将“复制到输出目录”从“不复制”更改为 “始终复制”。现在 CLI 在从 在 Visual Studio 2017 中。

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

    【讨论】:

    • 没有“属性”
    • 这仅适用于您在 VS 上的项目,而不是带节点的 vscode。
    • @makitocode vscode with node 的解决方案是什么?
    • @JonoSuave 总是
    • @SamiHuutoniemi 我在哪里添加这个配置?
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

      {
         "Values": {
              "AzureWebJobsStorage": "removed",
            },
         "IsEncrypted": false
      }
      

      【讨论】:

      • 太棒了!其他问题听起来很合理,但这解决了它!
      • WT……这行得通。我的 local.settings.json 没有任何问题,因为它以前使用相同的内容。突然它停止工作了。尝试了一切,清理解决方案,重建,手动删除 bin 和 obj 目录,重新启动笔记本电脑......没有任何效果。现在可以了!!!
      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

        • 在 Windows 上对我来说也是如此。视觉工作室中的某些东西被卡住了......有趣的是,当您搜索问题时,有这么多不同的问题,而且对天蓝色功能的支持是如此挑剔,以至于最后想到的是简单的 VS 重启。谢谢!
        【解决方案7】:

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

        此解决方案适用于本地开发。请注意,这需要在本地安装存储模拟器。请参阅docs

        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
          }
        }
        

        【讨论】:

          【解决方案8】:

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

          这个:

          "Config": {
           "MyCusomValue": "Value"
          }  
          

          变成:

          "Config:MyCustomValue": "Value"
          

          【讨论】:

            【解决方案9】:

            如下更新本地设置

            {
              "Values": 
              {
              "AzureWebJobsStorage": "DefaultEndpointsProtocol=`connection string of a blob storage`",
              "FUNCTIONS_WORKER_RUNTIME": "python"
              },
              "IsEncrypted": false
            }
            

            示例连接

            string=https;AccountName=xxx;AccountKey=xxxxxxx==;EndpointSuffix=core.windows.net
            

            【讨论】:

              【解决方案10】:

              对我来说,我发现这个文件非常挑剔,所以我将它设置回 VS2019 创建的方式,并按照上面的建议添加了我自己的配置。

              【讨论】:

                【解决方案11】:

                对我来说,我错过了关于我的价值观之一的结束语。一旦我解决了这个问题,一切正常。

                【讨论】:

                  【解决方案12】:

                  我刚刚在 Intellij Idea 上遇到了同样的问题(不想继续使用 VSCode)。 我只需要根据我的系统(Windows,由客户端强制 -_-)下载 Azure Core 工具:

                  https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local?tabs=windows%2Ccsharp%2Cbash

                  然后编辑启动配置,添加应用设置键:

                  AzureWebJobsStorage
                  

                  在应用设置值中:

                  UseDevelopmentStorage=true
                  

                  玩得开心。

                  【讨论】:

                    【解决方案13】:

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

                    1. 安装“Azurite”扩展
                    2. F1 并输入 Azurite: Start
                    3. 照常调试您的 Azure 函数(按 F5

                    更多详情请见official documentation for Azurite

                    【讨论】:

                      【解决方案14】:

                      我终于解决了这个问题,这是因为您的配置文件,如 local.settings.json 或 appsettings.json 显示任何警告消息,然后它将无法加载设置。

                      【讨论】:

                        【解决方案15】:

                        另一个问题:

                        如果文件local.settings.json的拼写错误,Visual Studio 不会找到它,但会报告没有提供值。

                        【讨论】:

                          【解决方案16】:

                          如果您在设置上声明字符串数组,也可能会发生这种情况,因为它不受支持。我有这样的事情:

                          {
                            "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",
                              "AllowedTypesToProcess": 
                              [
                                  "MyType1",
                                  "MyType2",
                                  "MyType3"
                              ]
                            },
                            "Host": {
                              "LocalHttpPort": 7071
                            }
                          }
                          

                          由于不支持数组,因此无法加载设置,但错误提示“在 local.settings.json 中缺少 AzureWebJobsStorage 的值”

                          如果您需要一组设置,请查看:https://www.titanwolf.org/Network/q/9256d500-5dbc-4375-851d-4d6f13928945/y

                          【讨论】:

                            【解决方案17】:

                            我的案例的解决方案是我选择了错误的 Azure 函数项目。 确保选择正确的启动项目。

                            【讨论】:

                              猜你喜欢
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 2018-10-23
                              • 1970-01-01
                              • 1970-01-01
                              • 2018-05-13
                              • 1970-01-01
                              • 1970-01-01
                              相关资源
                              最近更新 更多