Azure BlobStorage流已关闭文件> 25 MB

时间:2016-07-26 08:34:51

标签: c# .net azure azure-storage-blobs ziparchive

我将一些大型文件存储在博客存储容器中。

稍后,使用WebJob(也在Azure中),我使用Stream从每个blob中读取,这给了我{{1}}。

我打开流并从中读取。 问题是,当文件大于25 MB aprox时,经过一段时间读取OK后,它会抛出此异常(在读取期间):

  

未处理的异常:System.Net.Http.HttpRequestException:同时出错   将内容复制到流中。 ---> System.ObjectDisposedException:   无法访问封闭的Stream。在System.IO .__ Error.StreamIsClosed()   在System.IO.MemoryStream.get_Position()处   System.Net.Http.StreamToStreamCopy.StartAsync()

似乎文件在另一边关闭了!

为什么会这样?有超时吗?我该如何处理这种情况?

2 个答案:

答案 0 :(得分:1)

根据您的连接速度,您的响应可能会超时。这将支持您对 25MB的文件的声明。使用BlobRequestOptions增加ServerTimeout和/或MaximumExecutionTime即可解决问题。

答案 1 :(得分:0)

我已经使用这些选项调用了OpenRead()方法,它似乎不再超时!

return block.OpenRead(null, new BlobRequestOptions()
            {
                ServerTimeout = TimeSpan.MaxValue,
                RetryPolicy = new ExponentialRetry(TimeSpan.FromSeconds(5), 4),                
                MaximumExecutionTime = TimeSpan.FromHours(3)
            });