ASP.NET aspxerrorpath в URL - PullRequest
       20

ASP.NET aspxerrorpath в URL

16 голосов
/ 06 ноября 2008

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

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

Есть мысли?

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

Ответы [ 2 ]

18 голосов
/ 06 ноября 2008

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

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

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

7 голосов
/ 06 ноября 2008

Возможно, вам придется добавить ниже в 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

...