[
  {
    "Id": "468695",
    "ThreadId": "219820",
    "Html": "<p>I have some asp.net code which plops a number of files into a zip file for download. It does not compression - it's just to ensure one download.</p>\r\n<p>I've migrated this to Azure and it no longer works.&nbsp; The particular issue is a 'Not Supported Exception' which offurs On HttpResponseStream.Position.get() (called from CountingStream constructor called freom ZipFile.Save).</p>\r\n<p>Of course the original code was reading from files and this version is now reading from CloudBlob streams.</p>\r\n<p>The code looks like below.&nbsp; My original code was against v1.7, but I have downloaded v1.9 (and changed a couple of lines).</p>\r\n<p>Be grateful for any suggestions</p>\r\n<p>Iain</p>\r\n<p>List&lt;ItemInfo&gt; items = GetForOrder(OrderID);<br>ZipFile zipper = <span style=\"color:blue\">new</span> ZipFile();<br>zipper.CompressionLevel = Ionic.Zlib.CompressionLevel.Level0;<br>List&lt;Stream&gt; Streams = <span style=\"color:blue\">new</span> List&lt;Stream&gt;();<br><span style=\"color:blue\">try</span><br>{<br>&nbsp;&nbsp;&nbsp; <span style=\"color:blue\">foreach</span> (ItemInfo item <span style=\"color:blue\">in</span> items)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CloudBlob blob = PBLiteFileUpDownload.GetBlob(item.PriceCode, MediaType, item.ContentID);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color:blue\">try</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; blob.FetchAttributes();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color:blue\">catch</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color:blue\">throw</span> <span style=\"color:blue\">new</span> InvalidOperationException(<span style=\"color:blue\">string</span>.Format(<span style=\"color:#a31515\">&quot;No content {0}.{1}&quot;</span>, item.ContentID, MediaType));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color:blue\">if</span> (blob.Properties.Length == 0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color:blue\">throw</span> <span style=\"color:blue\">new</span> InvalidOperationException(<span style=\"color:blue\">string</span>.Format(<span style=\"color:#a31515\">&quot;No content {0}.{1}&quot;</span>, item.ContentID, MediaType));<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color:blue\">string</span> cleanName = FileNameAsTitleArtist(item.Title, item.Artist, MediaType);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stream stream = blob.OpenRead();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Streams.Add(stream);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zipper.AddEntry(cleanName, stream); <span style=\"color:green\">//.AddFileStream(cleanName, &quot;&quot;, stream);</span><br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; Response.Clear();<br>&nbsp;&nbsp;&nbsp; Response.AppendHeader(<span style=\"color:#a31515\">&quot;Content-Disposition&quot;</span>, <span style=\"color:blue\">string</span>.Format(<span style=\"color:#a31515\">&quot;attachment; filename={0}_{1}.zip&quot;</span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OrderID, MediaType));<br>&nbsp;&nbsp;&nbsp; Response.ContentType = <span style=\"color:#a31515\">&quot;application/x-zip-compressed&quot;</span>;<br>&nbsp;&nbsp;&nbsp; Response.Buffer = <span style=\"color:blue\">false</span>;<br>&nbsp;&nbsp;&nbsp; zipper.Save(Response.OutputStream);&nbsp;&nbsp; //&lt;&lt; Not&nbsp;Supported eXCEPTION<br>&nbsp;&nbsp;&nbsp; Response.Flush();<br>&nbsp;&nbsp;&nbsp; Response.End();<br>}<br><br></p>",
    "PostedDate": "2010-07-18T07:00:20.46-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "472541",
    "ThreadId": "219820",
    "Html": "<p>OK.&nbsp; It seems I'm not paying attention.</p>\r\n<p>The exception is raised and it is ignored / handled within DotNetZip.&nbsp; However, if you are running under the debugger, NotSupportedException defaults to break on thrown which in turn 'threw' me (ha ha).</p>\r\n<p>So there is no issue here.&nbsp; It would be nice though if this condition was handled without using exceptions...</p>\r\n<p>&nbsp;</p>\r\n<p>Iain</p>",
    "PostedDate": "2010-07-26T02:19:09.673-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  }
]