Я использую ASP.NET на сервере IIS6. Прямо сейчас сервер настроен для сжатия динамически генерируемого содержимого, главным образом для уменьшения размера страницы файлов ASPX, которые извлекаются.
После того, как файлы ASPX имеют следующий бит кода, используемый для извлечения файла из базы данных и отправки его пользователю:
Response.Clear();
Response.Buffer = true;
Response.ContentType = Document.MimeType;
Response.AddHeader("content-disposition", "attachment;filename=\"" + Document.Filename + Document.Extension + "\"");
Response.AddHeader("content-length", Document.FileSizeBytes.ToString());
byte[] docBinary = Document.GetBinary();
Response.BinaryWrite(docBinary);
Сама загрузка работает отлично. Однако, человек, загружающий файл, не получает индикатор выполнения, который невероятно раздражает.
Из того исследования, которое я проводил, кажется, что когда IIS устанавливает кодирование передачи для chunked при сжатии динамического содержимого, которое удаляет заголовок длины содержимого, поскольку при этом нарушается стандарт HTTP1.1. *
Какой лучший способ обойти это без отключения динамического сжатия на уровне сервера? Есть ли способ через ASP.NET программно отключить сжатие для этого ответа? Есть ли лучший способ сделать что-то?