Проблема с получением пользовательских ошибок для отображения на IIS7 - PullRequest
1 голос
/ 12 октября 2009

У нас работает сайт, построенный на EPiServer (CMS5 R2, последняя версия) и ASP.NET 3.5, работающий на IIS7, мы создали специальный обработчик ошибок, который использует функциональность URLRewriter EPiServer для обработки 404 и 301 коды состояния, все работает локально (Windows 7 + IIS7.5), но мы просто не можем заставить 404 страницы работать на живом сервере (Windows 2008 Server + IIS7). Переадресация 301 работает, но для страницы 404 мы просто получаем сообщение IIS7 по умолчанию:

Сообщение iis7 по умолчанию 404 http://episerversucks.com/upload/iis7_error.png

Очевидно, что обработчик запускается, поскольку предопределенные 301-перенаправления работают (URL со старого сайта, которые нам нужно перенаправить на новый сайт), но для 404 IIS7 просто заменяет их своим сообщением по умолчанию.

Обработчик 404 работает таким образом, что выполняет внутреннее перенаправление на страницу /Pages/Error404.aspx, которая отображает симпатичную настраиваемую страницу 404 на соответствующем языке и устанавливает свой собственный код состояния от 404 до Response.StatusCode = 404; Я получил совет с сайта об изменении переменной TrySkipIisCustomErrors на true, то есть Response.TrySkipIisCustomErrors = true;, но это тоже не помогло.

Единственное различие в конфигурации, которое я обнаружил между локальными компьютерами и сервером, состоит в том, что на локальных машинах есть параметр конфигурации, называемый «.NET Error Pages» и параметр, называемый просто «Error Pages» в то время как на действующем сервере только есть параметр «Страницы ошибок» и отсутствуют страницы ошибок .NET, но я не нашел способа добавить диалоговое окно настройки страниц ошибок .NET на сервер, это IIS7.5 специфично?

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

Редактировать: Локальная версия разработчика и живая версия имеют идентичные файлы web.config, настройки и т. Д. (Кроме строки подключения к базе данных, очевидно)

1 Ответ

1 голос
/ 12 октября 2009

Хорошо, так что я решил, проблема была в том, чтобы установить для <httpErrors errorMode="Detailed" /> значение «Подробно», если он настроен на «Пользовательский», то обработчик ошибок IIS7 перехватывает все страницы, которые возвращают 404, и выключает ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...