Как отключить частичное кодирование передачи при использовании сжатого динамического содержимого? - PullRequest
5 голосов
/ 21 мая 2009

Я хочу отключить кодировку chunked Transfer на моем веб-сервере, чтобы избежать этой ошибки: http://support.microsoft.com/kb/871205. К сожалению, мне нужно поддерживать IE6 на Win2k, поэтому они не могут установить патч.

Я нашел инструкции по установке для AspEnableChunkedEncoding значения FALSE, но это, похоже, не решает мою проблему. Я полагаю, что это потому, что мы также используем сжатие gzip, которое, согласно этой статье (http://www.eggheadcafe.com/conversation.aspx?messageid=31045986&threadid=31045970), требует сжатого кодирования для сжатия динамического содержимого. Таким образом, весь динамически сжатый контент передается «chunked», потому что сжатый фильтром gzip, а не ASP.NET.

Я знаю, что IIS может обслуживать этот контент без чанка, потому что я пытался использовать http 1.0 в запросе (который не поддерживает кодировку передачи: chunked), и ответ приходит правильно и сжимается.

Как отключить кодирование по частям при использовании ScriptManager, что требует динамического сжатия результирующих файлов ".axd"?

1 Ответ

1 голос
/ 03 декабря 2010

Поскольку вы не можете изменить поведение сжатия GZip в IIS или заставить ваш клиент перейти на новую ОС, почему бы не отключить сжатие GZip для определенных строк агента пользователя.

В Apache вы можете использовать mod rewrite для этого ( см. Здесь ) с такими строками, как:

RewriteEngine on

RewriteCond %{HTTP:User-Agent} MSIE\ [56]
RewriteCond %{HTTP:User-Agent} !SV1
RewriteCond %{REQUEST_URI} \.(css|js)$
RewriteHeader Accept-Encoding: .* $1

Этот поток ошибок сервера указывает, что вы можете использовать ISAPI Rewrite , чтобы использовать те же директивы и получить тот же результат. Похоже, что эти директивы будут поддерживаться и бесплатной версией Lite, поэтому вам не придется покупать какие-либо лицензии.

...