IE скремблирует скрипт в IIS7 с включенным статическим сжатием

У меня возникают проблемы с файлами javascript, которые не распаковываются в IIS7, и таблицы стилей не загружаются должным образом.

Я могу решить эту проблему, отключив статическое сжатие в IIS, но это не может быть постоянным решением. Проблема возникла внезапно. Мы не меняли код.

Веб-приложение представляет собой приложение веб-форм asp.net в .net 4. В IIS установлено статическое и динамическое сжатие. другое веб-приложение веб-форм по-прежнему работает нормально со статическим сжатием, установленным на уровне приложения.

сервер был обновлен до .net 4.5 framework.

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

Эта проблема возникает только в Internet Explorer.

Я действительно застрял в этом вопросе.

Запрос

Request GET        /webapp/JavaScript/jQuery/js/jquery-1.3.2.min.js HTTP/1.1
Accept  text/html, application/xhtml+xml, */*
Accept-Language x-en-GB-zscot
User-Agent  Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
UA-CPU  AMD64
Accept-Encoding gzip, deflate
Host    localhost
Connection  Keep-Alive

Заголовки ответов

Key Value
Response    HTTP/1.1 200 OK
Cache-Control   private
Content-Type    application/x-javascript
Content-Encoding    gzip,gzip
Last-Modified   Wed, 10 Oct 2012 15:45:44 GMT
Accept-Ranges   bytes
ETag    "04f24efea6cd1:0"
Vary    Accept-Encoding
Server  Microsoft-IIS/7.5
X-Compressed-By HttpCompress
Date    Tue, 04 Dec 2012 11:07:13 GMT
Content-Length  19788

Часть тела ответа

‹
@õ¿‹ä½kwÚȶ(úýü
¬ÕÛ-…âá¤×>g +ŒtÂÛI~a²®²M7F^€ã¤ýÛï|T•ª„p²ö8çŽ;ÆéÑ1R©Þ5k¾kVéÕÿȽÊýñé)šÏµÃ¯áéh>y\溓›yI_ŠoŠ¯1Ïýrùè—Jü³GñC  RñÃûøñû|rw¿Ì¹#/÷º\þG®ßÏrŸ£Åä3|x

person skyfoot    schedule 04.12.2012    source источник


Ответы (2)


Это сбой распаковки qZip. Может случиться, если Content-Length в заголовке неправильный.

Иногда, если страница устанавливает Content-Length в заголовке, а затем веб-сервер пытается сжать страницу с помощью gZip, но не может изменить Content-Length - потому что все было готово, отправьте в браузер.

Возможные решения - удалить набор Content-Length из вашего кода и позволить IIS установить его, посмотреть, готовы ли вы сделать qZip эти файлы, и решить - эфир пусть iis сделает это за вас, эфир сделает это сам.

Аналогичная проблема и ответ:
Сайт ASP.NET иногда зависает и / или показывает странный текст вверху страницы во время загрузки на серверах с балансировкой нагрузки

HTTP-сжатие: некоторые внешние скрипты / CSS иногда некорректно распаковываются

Тип содержимого IIS неверен для сжатого CSS

person Aristos    schedule 08.12.2012
comment
Очень хорошая информация и информация, протестируем в понедельник. Я пропустил все эти вопросы, на которые вы ссылались при поиске на прошлой неделе. черт. - person skyfoot; 08.12.2012
comment
@skyfoot Я должен вам сказать, что это тоже похоже на неправильную кодировку текста. Как будто вы отправляете им utf-8, но читается их как-то еще. - person Aristos; 08.12.2012
comment
@skyfoot Я тоже пропустил твой вопрос перед наградой. Ну наверное длина контента. - person Aristos; 09.12.2012

Я сузил эту проблему до веб-сайта, используя Blowery HttpCompression.

Похоже, что с .net 4.5 Blowery и IIS больше не работают вместе, и статический контент, кажется, сжимается дважды: один раз Blowery и один раз IIS.

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

person skyfoot    schedule 11.12.2012
comment
Я думаю, что мой ответ поможет вам сосредоточиться на вопросах сжатия, и вы обнаружите, что - правильно? - person Aristos; 12.12.2012