Подтвердить что ты не робот

ASP.NET aspxerrorpath в URL-адресе

У меня есть сайт, где я использую CustomErrors в файле web.config, чтобы указать пользовательскую страницу ошибок, и это работает отлично. Пользовательская страница 404 также указана в конфигурации IIS (потому что, если нет, я не получаю свою страницу 404).

Но у меня есть некоторая логика, которая срабатывает, если пользователь получает 404, который смотрит на свой запрошенный URL-адрес и, если это необходимо, делает предложение навигации. Эта логика основывается на значении aspxerrorpath. На моем компьютере разработки aspxerrorpath правильно добавлен к URL-адресу, например: http://localhost:3092/FileNotFound.aspx?aspxerrorpath=/badpage.aspx, но на моем тестовом сайте нет никакого aspxerrorpath, добавленного к URL-адресу, поэтому вся моя пользовательская логика обойдена, и мои предложения не позволяют, т работы. Я не уверен, что это проблема конфигурации IIS или что-то еще. Веб-сервер - это Windows Server 2008 с IIS 7.

Любые мысли?

Большое спасибо.

4b9b3361

Ответ 1

Параметр aspxerrorpath передается, если ошибка была поймана .NET(и используется страница с ошибкой, указанная в web.config). Это происходит, если вы используете веб-сервер разработки, или если IIS настроен не проверять наличие файла.

Если IIS проверяет, что файл существует, то пользовательская ошибка, настроенная в IIS, используется, а запрошенный URL-адрес включен в строку запроса как-то вроде

http://example.com/FileNotFound.aspx?404;http://example.com/badpage.aspx

Ответ 2

Возможно, вам придется добавить ниже: web.config

<customErrors mode="On">
  <error statusCode="404" redirect="~/error404.aspx" />
</customErrors>

Для получения дополнительной информации проверьте: http://geekswithblogs.net/shahed/archive/2007/10/23/116278.aspx

Обновление. Мы можем использовать функциональность IIS7 для отображения пользовательских страниц ошибок 404 с использованием HTTPModules, как описано в http://professionalaspnet.com/archive/2008/02/13/Enforcing-a-Custom-404-Page-in-ASP.NET.aspx