public async Task EnsureMultiBufferMemoryStreamIsNotClosedAsync() { byte[] buffer = GetRandomBuffer(1 * 1024 * 1024); CloudBlobClient blobClient = GenerateCloudBlobClient(); CloudBlobContainer container = blobClient.GetContainerReference(Guid.NewGuid().ToString("N")); try { await container.CreateAsync(); CloudBlockBlob blob = container.GetBlockBlobReference("blob1"); using (MultiBufferMemoryStream originalBlob = new MultiBufferMemoryStream(null)) { originalBlob.Write(buffer, 0, buffer.Length); originalBlob.Seek(0, SeekOrigin.Begin); await blob.PutBlockAsync(Convert.ToBase64String(Guid.NewGuid().ToByteArray()), originalBlob.AsInputStream(), null); Assert.IsTrue(originalBlob.CanSeek); } } finally { container.DeleteIfExistsAsync().AsTask().Wait(); } }