#asp.net #http-status-code-404 #custom-error-pages
#asp.net #http-status-code-404 #пользовательские страницы с ошибками
Вопрос:
все! У меня проблема с asp.net исключения из ошибок. Я работаю над веб-приложением по недвижимости, и Google создал индексы для ссылок на недвижимость. Но по прошествии некоторого периода времени несколько объектов недвижимости больше не существуют в БД. Проблема следующая: если пользователь нажимает на ссылку для недвижимости, которая больше не существует в БД, мне нужно вернуть страницу с ошибкой моего клиента с кодом состояния 404.
Я пытаюсь сделать это следующим образом:
- при обработке URL я проверяю, существует ли такая недвижимость
- если нет, я создаю свой собственный
RealEstateDontExistException
- в Global.asax при обработке ошибки сервера я проверяю, относится ли эта ошибка к типу
RealEstateDontExistException
тогда - Я установил:
Ответ.Код состояния = 404; Сервер.Ошибка очистки(); Сервер.Передача("~/ErrorPage.aspx");
Мне нужно показать страницу aspx с кодом состояния 404. На локальном хосте это работает нормально. Но если я попытаюсь получить несуществующую недвижимость с производственного сервера, то веб-браузер покажет мне следующий текст
«Ресурс, который вы ищете, был удален, его имя было изменено или он временно недоступен». с кодом состояния 404.
Кто-нибудь может мне помочь? Спасибо.
Комментарии:
1. вы подтвердили, что
ErrorPage.aspx
существует на сервере?
Ответ №1:
Похоже, что ваш рабочий веб-сервер отображает собственную страницу ошибки. Пожалуйста, настройте его (IIS) для отображения пользовательской страницы ошибок при ошибке 404 — смотрите Эту статью о том, как это сделать на IIS7 (и это для IIS 6.0).
Ответ №2:
Возможно, ваша страница с ошибкой слишком мала для HTTP 404 в Internet Explorer (должна содержать более 10 строк).
Взгляните на эти ресурсы:
- http://perishablepress.com/press/2008/01/21/important-note-for-your-custom-error-pages/
- http://weblogs.asp.net/scottgu/archive/2006/04/09/App_5F00_Offline.htm-and-working-around-the-_2200_IE-Friendly-Errors_2200_-feature.aspx
Это раздел реестра, который IE использует для определения минимального размера:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerMAINErrorThresholds