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

开启Blob公共访问后,C# SDK无法访问ADLS Gen2公共容器怎么办?

解决ADLS Gen2公共容器C# SDK访问认证失败问题

要解决这个认证错误,需要完成以下配置和代码调整:

1. 确认容器的公共访问级别

仅开启存储账户的「Allow Blob public access」不足以实现匿名访问,必须单独设置目标容器的公共访问权限:

  • 登录Azure门户,进入目标存储账户的「容器」界面
  • 找到名为public的容器,进入其「更改访问级别」设置
  • 将公共访问级别从「私有(无匿名访问)」修改为容器(Container)(允许匿名列出容器内文件)或Blob(Blob)(仅允许匿名访问单个Blob,无法列出文件),保存设置。

2. 修改C# SDK代码,指定匿名访问凭据

当前代码创建DataLakeFileSystemClient时未明确使用匿名凭据,SDK默认会尝试使用身份认证,导致报错。需调整代码如下:

var fileSystemClient = new DataLakeFileSystemClient(
    new Uri("https://somestorageaccount.dfs.core.windows.net/public"),
    new AnonymousCredential(),
    new DataLakeClientOptions());

var paths = fileSystemClient.GetPaths();
foreach (var path in paths)
{
    Console.WriteLine(path.Name);
}

3. 检查存储账户网络规则(若有配置)

如果存储账户设置了防火墙或虚拟网络限制,需确保允许匿名请求的来源:

  • 进入存储账户的「网络」设置
  • 在「防火墙和虚拟网络」选项中,若选择了「选定的网络」,需将客户端IP地址加入允许列表;或者临时切换为「所有网络」测试是否正常访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 08:50:19