Статическое сжатие, когда для 'runAllManagedModulesForAllRequests' установлено значение 'true' - PullRequest
3 голосов
/ 02 декабря 2011

Мы обновили время, прежде чем наше устаревшее веб-приложение ASP.NET использовало .NET Framework 4.0. Никаких проблем там нет. Последний спринт, мы реализовали новый модуль для перезаписи оптимизированных для SEO URL. Но поскольку мы хотим использовать URL-адреса без каких-либо файлов и расширений (например, вместо http://server/Some-Nice-URL/file.aspx только http://server/Some-Nice-URL/), мы были вынуждены установить для 'runAllManagedModulesForAllRequests' значение 'true', поскольку без этого был ASP. Сеанс NET недоступен.

Теперь у нас проблема со статическим сжатием и GZIP. После пары постбэков мы «потеряли» CSS и / или Javascripts. Если я получаю доступ к файлу CSS или Javascript напрямую, я иногда получаю сообщение браузера «Ошибка кодировки содержимого», иногда файл доставляется правильно. В Fiddler длина CSS или Javascript-файлов иногда неверна, но в HTTPCompression отображается кодировка GZIP и «Ответ закодирован, и мне нужно декодировать перед проверкой». После нажатия «Магическое число в заголовке GZip неверно». Если для 'runAllManagedModulesForAllRequests' или 'doStaticCompression' установить значение 'false', проблем со статическим сжатием и "потерянными" файлами CSS и / или Javascript не возникнет.

Есть идеи?

1 Ответ

3 голосов
/ 08 февраля 2012

Это происходит потому, что в какой-то момент вы задаете длину содержимого ваших файлов в заголовке, после чего gzip пытается изменить эту длину, но не удается, потому что вы не настроили iis для возможности изменения заголовков, и Вы отправляете файл gzip с неправильным размером, и это создает проблемы.

Чтобы решить эту проблему, найдите точку, в которой вы задали длину этого контента, и удалите ее, или измените значение iss, чтобы принять изменение заголовка после его установки.

Посмотрите и этот похожий ответ: https://stackoverflow.com/a/3210574/159270

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

...