Escribiendo en ZipArchive usando el HttpContext OutputStream

He estado tratando de obtener el "nuevo" ZipArchive incluido en .NET 4.5 (System.IO.Compression.ZipArchive) para trabajar en un sitio ASP.NET. Pero parece que no le gusta escribir a la corriente deHttpContext.Response.OutputStream.

Mi siguiente ejemplo de código lanzará

System.NotSupportedException: el método especificado no es compatible

Tan pronto como se intenta una escritura en la secuencia.

losCanWrite propiedad en la corriente devuelve true.

Si cambio el OutputStream con un flujo de archivos, apuntando a un directorio local, funciona. ¿Lo que da?

ZipArchive archive = new ZipArchive(HttpContext.Response.OutputStream, ZipArchiveMode.Create, false);

ZipArchiveEntry entry = archive.CreateEntry("filename");

using (StreamWriter writer = new StreamWriter(entry.Open()))
{
    writer.WriteLine("Information about this package.");
    writer.WriteLine("========================");
}

Stacktrace:

[NotSupportedException: Specified method is not supported.]
System.Web.HttpResponseStream.get_Position() +29
System.IO.Compression.ZipArchiveEntry.WriteLocalFileHeader(Boolean isEmptyFile) +389
System.IO.Compression.DirectToArchiveWriterStream.Write(Byte[] buffer, Int32 offset, Int32 count) +94
System.IO.Compression.WrappedStream.Write(Byte[] buffer, Int32 offset, Int32 count) +41

Respuestas a la pregunta(5)

Su respuesta a la pregunta