URL переписать исходящие правила IIS7 - PullRequest
15 голосов
/ 15 сентября 2010

Экспериментируя с перезаписью URL с использованием этого модуля, я получаю следующую ошибку при попытке попасть в URL. Посмотрел в Интернете ответы, но не уверен, что лучший способ обойти это .... любые идеи ??

Ошибка HTTP 500.52 - Ошибка модуля перезаписи URL. Правила исходящей перезаписи не могут применяться, если содержимое HTTP-ответ закодирован ("gzip"). **

IIS получил запрос; однако во время обработки запроса произошла внутренняя ошибка. Коренная причина этой ошибки зависит от того, какой модуль обрабатывает запрос и что происходило в рабочем процессе, когда эта ошибка произошла.

IIS не удалось получить доступ к файлу web.config для веб-сайта или приложения. Это может произойти, если разрешения NTFS установлены неправильно.

IIS не удалось обработать конфигурацию для веб-сайта или приложения.

Аутентифицированный пользователь не имеет разрешения на использование этой DLL.

Запрос сопоставлен с управляемым обработчиком, но функция расширяемости .NET не установлена.

Ответы [ 4 ]

16 голосов
/ 13 июня 2013

Я пробовал комментарии от aracntido, но, похоже, он не работает в IIS7.Он отлично работает на серверах с IIS7.5, поэтому я не уверен, есть ли обходной путь.

Исправление заключается в использовании этого в web.config:

<system.webServer>
  <urlCompression doStaticCompression="false" doDynamicCompression="false" dynamicCompressionBeforeCache="false" />
</system.webServer>
6 голосов
/ 06 декабря 2010

Это сделано специально, это означает, что HTML был уже заархивирован, когда он стал доступен для модуля перезаписи URL, поэтому он не мог переписать его, потому что сначала его нужно распаковать, переписать, а затем снова сжать и это слишком большая мощность процессора. Если это динамический контент, попробуйте переписать его перед сжатием.

Переместить модуль динамического сжатия после модуля перезаписи URL в «Модули» на уровне сервера (InetMgr). Отключите «log rewritten URL» для правила (по умолчанию), иначе модуль попытается стать последним в конвейере.

Статическое сжатие не совместимо с исходящей перезаписью.

1 голос
/ 22 августа 2016

Хотя отключение статического и динамического сжатия работает хорошо, этот метод не работает с файлами *.axd. Эти файлы являются ресурсами на стороне клиента, такими как js, Ajax и так далее. Подробнее о файлах axd ЗДЕСЬ .

Поскольку эти файлы сжимаются автоматически. Читайте ЗДЕСЬ подробнее о том, почему!

Чтобы упростить их работу, отправьте запрос с пустым заголовком Accept-Encoding! Это возможно двумя способами:

  1. [ПЛОХО] изменение настроек Firefox КАК?
  2. [NICE] установка правила входящих для очистки Accept-Encoding в заголовке! КАК?
0 голосов
/ 21 ноября 2013

Отключение статического сжатия (ненужного для моей ситуации) в IIS 7.0 исправило аналогичную проблему, при которой URL-адреса загружались, но при обновлении страницы возникала основная ошибка 500.

Я добавил index.html к URL-адресу, и это уточнило ошибку до «Ошибка HTTP 500.52 - Ошибка модуля перезаписи URL-адреса. Правила исходящей перезаписи не могут применяться, когда содержимое HTTP-ответа закодировано («gzip») ».

Спасибо aracntido за указание на это, вы помогли мне решить проблему.

...