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

C#遍历Azure Blob容器执行GetBlobsAsync后无打印输出问题

问题原因

无输出的核心原因有两类:

  • 必现主因:控制台程序入口未等待异步任务执行完毕。你的Main方法仅调用IterateBlobsAsync()获取了Task对象,但未对该任务做等待处理,主线程启动异步流程后会直接走完生命周期退出程序,后续的Blob查询、控制台打印逻辑根本来不及执行。
  • 配置类排查项:修复等待逻辑后仍无输出时,依次核对以下配置:
    • 填写的存储账户连接字符串是否正确,本地网络是否可以正常访问Azure存储服务
    • 填写的容器名称是否和实际容器名完全一致(Azure存储容器名全小写,注意拼写)
    • 连接字符串对应的访问凭据是否有目标容器的Blob读取权限
    • 目标容器内是否确实存在Blob资源,空容器遍历不会返回任何结果
修复方法

将控制台入口改为可等待异步任务的写法,确保程序在异步逻辑执行完成前不会退出。C# 7.1及以上版本直接支持async Task Main写法,修复后完整代码如下:

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Azure;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using System.Linq;

namespace IterateBlobs
{
    class Program
    {
        static async Task Main(string[] args)
        {
            await IterateBlobsAsync();
            Console.WriteLine("遍历执行完成,按任意键退出");
            Console.ReadKey();
        }
        private static async Task IterateBlobsAsync()
        {
            // 替换为真实存储账户连接字符串
            string connect = "你的存储账户连接字符串";
            BlobServiceClient sourceClient = new BlobServiceClient(connect);
            // 替换为真实容器名称
            BlobContainerClient blobContainer = sourceClient.GetBlobContainerClient("你的容器名称");
            
            List<BlobItem> segment = await blobContainer.GetBlobsAsync().ToListAsync();
            foreach (BlobItem blobItem in segment)
            {
                Console.WriteLine($"Blob名称:{blobItem.Name}");
                BlobClient blob = blobContainer.GetBlobClient(blobItem.Name);
                Response<BlobProperties> propertiesResponse = await blob.GetPropertiesAsync();
                BlobProperties properties = propertiesResponse.Value;
                // 按需读取Blob属性,比如内容长度、类型等
            }
        }
    }
}

如果你使用的C#版本低于7.1,不支持异步Main写法,可以把Main方法内的代码替换为IterateBlobsAsync().GetAwaiter().GetResult();来同步等待异步任务执行完成,不推荐直接使用Wait()方法,避免异常被AggregateException包装增加排查成本。

内容的提问来源于stack exchange,提问作者Janet

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 01:12:32