Я использую ZipArchive с обработчиком, чтобы служить пользователю, использующему поток памяти и веб-обработчик. Локально это работало, пока я не загрузил приложение на сайт.ZipArchive обслуживает недопустимый файл на реальном сервере
Вот мой код.
using (ZipArchive newArchive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true))
{
newArchive.CreateEntryFromFile(fileName, Path.GetFileName(fileName));
if (File.Exists(acRefFile))
{
newArchive.CreateEntryFromFile(acRefFile,
newACRefName + Path.GetExtension(acRefFile));
}
else
{
SystemLogManager sysLogMgr = new SystemLogManager();
sysLogMgr.AddErrorMessage(acRefFile, "File not found");
}
if (File.Exists(exRefFile))
{
newArchive.CreateEntryFromFile(exRefFile,
newExRefName + Path.GetExtension(exRefFile));
}
else
{
SystemLogManager sysLogMgr = new SystemLogManager();
sysLogMgr.AddErrorMessage(exRefFile, "File Not Found");
}
if (File.Exists(exRef2File))
{
newArchive.CreateEntryFromFile(exRef2File,
newExRef2Name + Path.GetExtension(exRef2File));
}
}
memoryStream.Position = 0;
byte[] bytes = memoryStream.GetBuffer();
context.Response.Buffer = true;
context.Response.Clear();
context.Response.ContentType = "application/zip";
context.Response.AddHeader("content-disposition",
string.Format("attachment; filename =app_{0}_{1}.zip", appForm.Cand_sno,
appForm.App_year));
context.Response.BinaryWrite(bytes.ToArray());
context.Response.Flush();
На следующем изображении показан загруженный zip-файл и возникшая ошибка.
Так что-нибудь в коде, которое может быть неправильным или что-то, что я мог бы попробовать на стороне сервера?
Обновление 1: Основываясь на полученных комментариях, я попытался добавить zip-файл непосредственно на сервер. Такая же проблема возникает, так как в zip «поврежден».
Обновление 2: Дальнейшие исследования Теперь я обнаружил, что zip-файл открывается при использовании 7zip, но не стандартного экстракта Windows. Когда щелкните правой кнопкой мыши, выведите все сообщения о том, что почтовый адрес пуст.
Благодаря
Является ли ваша машина разработки и сервер машиной на базе Windows? Вы проверили журналы событий/приложений сервера? –
Оба разработчика и сервер - это окна, основанные на правильной версии .net. Я просмотрел журналы приложений, и примечание выделяется как возможная причина. – Dashwall
Разве это «испорчено» каждый раз или 9 раз из 10? –