Назад | Перейти на главную страницу

32-битное приложение IIS7 не запускает страницы ошибок, только пустую страницу

Я настраиваю IIS7.5 на новом 64-битном сервере для обработки старого веб-сайта, который использует несколько 32-битных компонентов и базу данных MS Access.

Я успешно настроил пул приложений для поддержки 32-битной версии, так что Jet4.0 и старые компоненты работают правильно.

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

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

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

Я сделал несколько поисков в Google и увидел, что с этой проблемой столкнулись другие люди, но я пока не смог найти никакого решения.

Я сам нашел решение, хочу поделиться им с сообществом:

  • Проблема вызвана параметром «Включить отладку на стороне сервера» в функции ASP / Debugging в свойствах веб-сайта. Если для параметра установлено значение «True», IIS вообще не отображает никаких ошибок, пустая страница. Если установлено значение «False», ошибки отображаются как обычно.

Такое поведение имеет место только в том случае, если для пула приложений включен 32-разрядный режим. Если 32-битный режим отключен, ошибка отображается даже при установке для параметра «Включить отладку на стороне сервера» значения True. Очевидно, существует проблема с обработкой сообщений об ошибках между 32-битными пулами приложений на 64-битном сервере.