Ich debugge eine ziemlich seltsame Situation mit DotNetZip und ASP.NET. Kurz gesagt, die resultierenden Zip-Dateien, die vom Code erstellt werden, werden von Firefox zuverlässig heruntergeladen, aber die meisten anderen Browser geben zeitweise einen Netzwerkfehler zurück. Ich habe den Code untersucht und es liest sich so generisch wie alles, was DotNetZip betrifft.Von DotNetZip erstellte ZIP-Dateien mit ASP.NET verursachen manchmal Netzwerkfehler
Irgendwelche Hinweise?
Danke!
EDIT: Hier ist die vollständige Methode. Wie ich bereits erwähnt, ist es etwa so allgemein wie es nur geht:
protected void btnDownloadFolders_Click(object sender, EventArgs e)
{
//Current File path
var diRoot = new DirectoryInfo(_currentDirectoryPath);
var allFiles = Directory.GetFiles(diRoot.FullName, "*.*", SearchOption.AllDirectories);
Response.Clear();
Response.BufferOutput = false;
var archiveName = String.Format("{0}-{1}.zip", diRoot.Name, DateTime.Now.ToString("yyyy-MM-dd HHmmss"));
Response.ContentType = "application/zip";
Response.AddHeader("content-disposition", "inline; filename=\"" + archiveName + "\"");
using (var zip = new ZipFile())
{
foreach (var strFile in allFiles)
{
var strFileName = Path.GetFileName(strFile);
zip.AddFile(strFile,
strFile.Replace("\\" + strFileName, string.Empty).Replace(diRoot.FullName, string.Empty));
}
zip.Save(Response.OutputStream);
}
Response.Close();
}
Bitte geben Sie eine Minimal, Complete, prüfbare Beispiel http://stackoverflow.com/help/mcve – Sunshine
Sie benötigen mehr Informationen, als dies zur Verfügung zu stellen. Wir können Ihren Bildschirm nicht sehen oder Ihren Netzwerkverkehr untersuchen. Ich nehme an, Sie sind wegen eines Code-Problems hier? Wie können wir helfen, wenn wir den Code nicht sehen können? – Amy
Um dieses Problem zu lösen, ändern Sie 'Response.Close();' in 'Response.Flush();' Siehe https://Stackoverflow.com/a/736462/481207. (Chrome Version 61.) – Matt