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

.NET 6中BlobClient的AccountName属性返回空字符串问题求助

解决方案

当使用凭据(如DefaultAzureCredential)创建BlobClient时,AccountName属性为空是因为该方式下客户端不会自动从服务Uri中解析账户名并填充到属性中;而连接字符串方式会直接从连接字符串里提取账户名存入属性,所以能正常返回。

以下是几种可行的解决办法:

1. 从BlobClient的Uri中解析账户名

存储账户的Blob服务Uri格式通常为https://<accountname>.blob.core.windows.net/...,可以通过拆分Uri的主机名来获取账户名:

// 初始化BlobClient
var blobClient = new BlobClient(
    new Uri("https://youraccount.blob.core.windows.net/yourcontainer/yourblob"),
    new DefaultAzureCredential()
);

// 解析账户名
string accountName = blobClient.Uri.Host.Split('.')[0];

2. 通过BlobServiceClient获取账户名后创建BlobClient

BlobServiceClient使用凭据初始化时(指定服务Uri),可以正确获取AccountName属性,之后再通过它创建BlobClient:

// 初始化BlobServiceClient
var blobServiceClient = new BlobServiceClient(
    new Uri("https://youraccount.blob.core.windows.net"),
    new DefaultAzureCredential()
);

// 获取账户名
string accountName = blobServiceClient.AccountName;

// 创建BlobClient
var blobClient = blobServiceClient.GetBlobClient("yourcontainer/yourblob");

3. 提前存储账户名并复用

如果业务中已经提前知晓存储账户名,可以直接将其存入变量复用,无需从客户端实例提取:

string accountName = "youraccount";
var blobClient = new BlobClient(
    new Uri($"https://{accountName}.blob.core.windows.net/yourcontainer/yourblob"),
    new DefaultAzureCredential()
);

内容的提问来源于stack exchange,提问作者mustafa.salaheldin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 01:50:25