【发布时间】:2018-03-14 05:13:08
【问题描述】:
需要帮助,
试图获取存储在 blob-container 中的项目列表,但无法理解为什么会超时。
我得到的错误是: -
ReadTimeout '((System.IO.Stream)(swa.BaseStream)).ReadTimeout' 抛出类型为 'System.InvalidOperationException' int {System.InvalidOperationException}的异常
详细错误信息:
使用的代码来自:https://docs.microsoft.com/en-us/azure/storage/blobs/storage-dotnet-how-to-use-blobs
如下代码 - resultSegment 得到 Result count = 2327 但在 listblob.txt 上仅导出 - 2279 然后超时
namespace listblob
{
class Program
{
static void Main(string[] args)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("containername");
ListBlobsSegmentedInFlatListing(container).Wait();
}
async public static Task ListBlobsSegmentedInFlatListing(CloudBlobContainer container)
{
int i = 0;
BlobContinuationToken continuationToken = null;
BlobResultSegment resultSegment = null;
string patha = @"C:\listblob.txt";
StreamWriter swa = File.CreateText(patha);
do
{
resultSegment = await container.ListBlobsSegmentedAsync("", true, BlobListingDetails.All, 10, continuationToken, null, null);
if (resultSegment.Results.Count<IListBlobItem>() > 0) //{ Console.WriteLine("Page {0}:", ++i); }
foreach (var blobItem in resultSegment.Results)
{
//Console.WriteLine("\t{0}", blobItem.StorageUri.PrimaryUri);
swa.WriteLine(blobItem.Uri.Segments[2]);
}
.
continuationToken = resultSegment.ContinuationToken;
}
while (continuationToken != null);
}
}
}
【问题讨论】:
-
[![在此处输入图片描述][1]][1] [1]:i.stack.imgur.com/dCtiD.jpg
-
我尝试运行您的代码,没有任何问题并且工作正常。您可以尝试将文件的路径从
Drive c更改为其他驱动器并检查吗?并发布问题。
标签: c# .net azure blob azure-blob-storage