You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地运行Blob Trigger Azure函数时遇Azure.Storage.Queues空值错误

本地调试Azure Blob Trigger函数时遇"Value cannot be null"异常

异常信息

发生未处理的异常。主机正在关闭。
Functions:
Azure.Storage.Queues: Value cannot be null. (Parameter 'value').

异常截图

代码情况

使用模板生成的基础Blob Trigger函数代码:

using System.IO;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;

namespace Wpm;

public class ThumbnailFunction
{
    [FunctionName(nameof(ThumbnailFunction))]
    public void Run([BlobTrigger("wpm/{name}", Connection = "wpmStorageConn")]Stream myBlob, string name, ILogger logger)
    {
        logger.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
    }
}

已做排查

  • 推测是连接字符串问题,但已确认secrets.json中的连接字符串与Azure Storage Explorer及其他服务中使用的一致,连接字符串名称为wpmStorageConn。
  • 尝试了多种local.settings.json配置,当前内容如下:
{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "wpmStorageConn": "<<HereIsMyConnectionString>>",
    "ConnectionStrings:wpmStorageConn": "<<HereIsMyConnectionString>>",
    "AzureWebJobsSecretStorageType": "files"
  },
  "ConnectionStrings": {
    "wpmStorageConn": "<<HereIsMyConnectionString>>",
    "ConnectionStrings:wpmStorageConn": "<<HereIsMyConnectionString>>"
  }
}
  • secrets.json内容:
{
  "ConnectionStrings:wpmStorageConn": "<<HereIsMyConnectionString>>",
  "ConnectionStrings:wpmStorageConn:blob": "https://wpmstorage11.blob.core.windows.net/",
  "ConnectionStrings:wpmStorageConn:queue": "https://wpmstorage11.queue.core.windows.net/",
  "wpmStorageConn": "UseDevelopmentStorage=true"
}

解决步骤

核心问题

  1. Azure Functions触发器的连接字符串必须放在local.settings.json的Values节点下,ConnectionStrings节点用于EF等数据库场景,函数运行时不会从该节点读取触发器配置。
  2. secrets.json与local.settings.json配置冲突:secrets.json中wpmStorageConn设为UseDevelopmentStorage=true,但实际需要使用云端存储连接字符串,运行时优先读取secrets.json导致异常。
  3. 配置文件存在冗余项,干扰运行时读取逻辑。

具体修复

  1. 清理local.settings.json:保留必要配置,将wpmStorageConn放在Values节点下,删除所有冗余项:
{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "wpmStorageConn": "<<你的云端存储连接字符串>>",
    "AzureWebJobsSecretStorageType": "files"
  }
}
  1. 修正secrets.json:将wpmStorageConn的值改为与云端一致,确保配置统一:
{
  "ConnectionStrings:wpmStorageConn": "<<你的云端存储连接字符串>>",
  "ConnectionStrings:wpmStorageConn:blob": "https://wpmstorage11.blob.core.windows.net/",
  "ConnectionStrings:wpmStorageConn:queue": "https://wpmstorage11.queue.core.windows.net/",
  "wpmStorageConn": "<<你的云端存储连接字符串>>"
}
  1. 验证连接字符串格式:确保使用完整的Azure存储连接字符串,格式示例:DefaultEndpointsProtocol=https;AccountName=wpmstorage11;AccountKey=xxx;EndpointSuffix=core.windows.net,不要仅填写Blob服务URL。
  2. 重启调试环境:修改配置后,重启Visual Studio或Azure Functions Core Tools,确保配置生效。

内容的提问来源于stack exchange,提问作者Muhammad Ashhar Hasan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 12:10:09