ASP.NET/IIS6 - отключить кодирование по частям при использовании динамически сжатого содержимого? - PullRequest
5 голосов
/ 07 октября 2010

Я использую 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 программно отключить сжатие для этого ответа? Есть ли лучший способ сделать что-то?

1 Ответ

2 голосов
/ 08 октября 2010

Вы можете включить / выключить сжатие на уровне сайта или папки, изменив метабазу. Для получения дополнительной информации см .:

Включение сжатия HTTP (IIS 6.0)

Прокрутите вниз до: «Включение сжатия HTTP для отдельных сайтов и элементов сайта»

Для этого вам необходимы повышенные права (по крайней мере, администратор).

Возможно, вам придется поместить страницу загрузки в ее собственную папку и отключить сжатие на этом уровне, чтобы не влиять на другие части сайта.

Я должен признать, что я не пробовал это, но это то, что я попробую сначала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...