Я использую следующий код для отправки .zip-файла клиенту, он отлично работает для файлов размером около 60-80 Мб, но когда я пытаюсь работать с большими файлами (300 Мб), клиенты сообщают, что браузер (как IE, так и FFX)просто останавливает процесс загрузки через несколько минут (около 80 МБ), и больше ничего не происходит.
Интересно, может ли быть проблема с настройкой IIS, которая останавливает выполнение потока обработки запросов через несколько минут или еслис моим кодом что-то не так.
Я, очевидно, мог бы найти другие способы доставки .zip-файлов, но эта проблема немного беспокоит меня, и я хочу, чтобы она работала.
Код:
Response.ContentType = "application/zip";
Response.AddHeader("Content-Disposition", "attachment; filename=" + "hands.zip");
var fi = new FileInfo(dld.Path);
Response.AddHeader("Content-Length", fi.Length.ToString());
const int buffercnt = 50000;
var buffer = new byte[buffercnt];
using (var br = new BinaryReader( new StreamReader(dld.Path).BaseStream))
{
int read = br.Read(buffer, 0, buffercnt);
while(read != 0)
{
Response.OutputStream.Write(buffer, 0, read);
read = br.Read(buffer, 0, buffercnt);
Response.Flush();
}
}
Response.Close();
Response.End();