azure blob storage-无法从传输连接读取数据:现有连接被远程主机强行关闭
Posted
技术标签:
【中文标题】azure blob storage-无法从传输连接读取数据:现有连接被远程主机强行关闭【英文标题】:azure blob storage-Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host 【发布时间】:2015-01-14 01:08:09 【问题描述】:我正在使用 Microsoft.WindowsAzure.StorageClient 从 azure blob 存储中获取图像列表,但出现异常 "Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host"
。我该如何解决这个异常。
我的代码:
var azureBlobStorageConnectionString = ConfigurationManager.AppSettings["AzureBlobStorageConnectionString"];
var azureBlobContainerName = ConfigurationManager.AppSettings["AzureBlobContainerName"];
// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(azureBlobStorageConnectionString);
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference(azureBlobContainerName);
// Loop over items within the container and output the length and URI.
var containerList = container.ListBlobs().ToList();
ImagesUrls = new List<string>();
foreach (var item in containerList)
var blob = (CloudBlockBlob)item;
ImagesUrls.Add(blob.Uri.AbsolutePath);
【问题讨论】:
关于为什么这不起作用的任何想法?我也遇到了一个非常相似的问题,它在 container.ListBlobs(); 处显示错误;我的容器中也恰好有超过 10K 的 blob。 【参考方案1】:我认为您的循环在从服务中获取所有数据之前关闭时运行不正常,请检查。
【讨论】:
这里出现错误:"var containerList = container.ListBlobs().ToList();" 我也面临同样的问题 我也面临这个问题【参考方案2】:超时时间不足以获取记录或容器名称错误。
交叉检查容器名称
如果容器名称没问题,那么
替换
var containerList = container.ListBlobs().ToList();
到
var containerList = container.ListBlobs(new BlobRequestOptions Timeout = new TimeSpan(3,0,0) ).ToList();
注意:最长超时时间为几小时和几分钟。大约 14 分钟,最短超时时间为 1 秒。
【讨论】:
以上是关于azure blob storage-无法从传输连接读取数据:现有连接被远程主机强行关闭的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 InteractiveBrowserCredential 连接到 Azure Blob 存储
如何使用 C# 中的 Azure.Storage.Blobs 从 Azure 存储 Blob 以 ByteArray 格式获取文件
无法使用 Azure.Storage.Blobs NuGet 包将文件上传到 Azure Blob 存储