Почему только некоторые страницы работают с пользовательскими ошибками http в asp.net? - PullRequest
2 голосов
/ 06 сентября 2011

У меня проблема с моим сайтом:

Пользовательские ошибки не работают для меня. Это должно перенаправить общие ошибки на страницу и 404 ошибки на другую. Он работает локально, но не в размещенной среде.

<customErrors defaultRedirect="GeneralError.aspx" mode="on">
    <error statusCode="404" redirect="404Error.aspx" />
</customErrors>

Редактировать: Хорошо, я проверил ошибку немного больше, и, кажется, она работает для страниц вроде:

WWW. [Домен] .com / doesntexist.aspx

но не для

WWW. [Домен] .com / doesntexist

Это работает, только если я положу туда .aspx.

Редактировать: кто-нибудь знает, как я могу сделать так, чтобы он работал в обоих случаях?

Ответы [ 2 ]

4 голосов
/ 06 сентября 2011

Это связано с вашей конфигурацией и версией IIS, на которой работает ваш хост.В версиях IIS до 7 или, если вы используете IIS 7 с «классическим конвейером», на самом деле есть два канала, по которым ходят запросы http.Один обрабатывает запросы .net через ASP.net, а другой - в IIS.(т. е. ASPX идет на asp.net, а .jpg - на IIS)

В вашем случае несуществующие страницы идут на IIS, указанные вами конфиги asp.net не применяются.Могу поспорить, если вы введете www. [Domain] .com / doesntexist.jpg, он не перейдет на вашу пользовательскую страницу, но если вы введете www. [Domain] .com / doesntexist.aspx, то это будет.

SpЕсть несколько решений, основанных на том, какая версия IIS у вас есть.Если ваш хост использует IIS7, вы можете запустить сайт с помощью Integrated Pipeline , что означает, что все запросы проходят через ASP.net и конфигурация будет применяться. Вот дополнительная информация.

Если вы не используете IIS, это можно исправить только с помощью , указав пользовательские коды ошибок в самом IIS .Если это так, то, надеюсь, ваш хост разрешит это.

Еще одна возможность для IIS6 - создание пользовательских обработчиков для страниц и файлов, отличных от .net, и принудительная их маршрутизация на asp.net, затемВаша конфигурация будет применяться.Однако это нежелательно, поскольку это может стать кошмаром обслуживания и дополнительным кодом / конфигурацией.

Связанные вопросы SO:

Переопределенная страница IIS с ошибкой 404 в ASP.NET

Как заставить пользовательские страницы ошибок работать для Classic ASP с интегрированным конвейером IIS 7

Сайт не перенаправляется на документ по умолчанию в режиме классического конвейера

0 голосов
/ 06 сентября 2011

В Mozilla Firefox иногда возникает проблема с кэшированием в значках .Попробуйте перейти в браузере прямо к файлу: http://example.com/favicon.ico.Это загрузит его в кеш Firefox.Закройте браузер и перезагрузите хост-сайт.

Проверьте настройки IIS вашего хостинг-провайдера на 404 ошибки.Проверьте FAQ своих провайдеров хостинга на предмет настроек IIS и 404. Они могут запрещать настройку из web.config.

...