Schreiben in ZipArchive mit dem HttpContext OutputStream

Ich habe versucht, das "neue" ZipArchive in .NET 4.5 zu bekommen (System.IO.Compression.ZipArchive), um in einer ASP.NET-Site zu arbeiten. Aber anscheinend mag es nicht, in den Stream von zu schreibenHttpContext.Response.OutputStream.

Mein folgendes Codebeispiel wird werfen

System.NotSupportedException: Die angegebene Methode wird nicht unterstützt

sobald ein schreibversuch im stream unternommen wird.

DasCanWrite Eigenschaft im Stream gibt true zurück.

Wenn ich den OutputStream mit einem Dateistream tausche, der auf ein lokales Verzeichnis verweist, funktioniert er. Was gibt?

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

Antworten auf die Frage(5)

Ihre Antwort auf die Frage