2010-08-20 4 views
1

У меня есть страница, которая показывает много входящего трафика. Некоторые из них терпят неудачу, и я хочу перенаправить их на главную страницу, чтобы избежать потери потенциальных клиентов. Я попытался это в моем global.asaxПроблема перенаправления ASP.NET и 404

void Application_Error(object sender, EventArgs e) 
     { 
      // Code that runs when an unhandled error occurs 
      Exception ex = Server.GetLastError(); 

      if (ex is HttpException) 
      { 

       if (((HttpException)(ex)).GetHttpCode() == 404) 

        Server.Transfer("~/Default.aspx"); 

      } 

      // Code that runs when an unhandled error occurs 

      Server.Transfer("~/Default.aspx"); 

     } 

И я попытался с помощью пользовательских ошибок, но мое приложение продолжает давать мне +7,5 HTTP страницу 404 ошибки IIS, хотя я должен обработал это сам .... Все работает в соответствии с моей средой разработки, но на моем размещенном решении не работает ... какие-либо решения?

ответ

0

решаемые с помощью обработчика HTTP и его регистрации в web.onfig

1

Я вижу в этом коде потенциальную мертвую петлю на той же странице (по умолчанию.aspx).

2

HTTP 404 не является прикладной ошибкой. Это ошибка клиента, что означает, что запрошенный веб-ресурс не найден/не существует. Он возвращается веб-сервером, прежде чем он когда-либо достигнет вашего приложения, чтобы ваш код ошибки никогда не был выполнен.

Редактировать: На самом деле я не уверен, что это не изменилось в интегрированном режиме IIS 7.x, но для IIS 6 и IIS 7.x в классическом режиме выше утверждение верно.

2

Попробуйте следующее:

throw new HttpException(404, "Not Found"); 

Это должно перенаправить пользователя на страницу ошибки, определенной в файле web.config.

Также, как правило, считается неправильной практикой перенаправлять пользователя на главную страницу, а не показывать специальную страницу «Не найдено». Пользователь должен знать об ошибке. Лучше всего предложить пользователю полезные ссылки на странице ошибки, а также в форме быстрого поиска.

+0

+1, пытался выяснить, как сделать это на некоторое время. Легко подключается к пользовательским настройкам ошибок в веб-конфигурации. – ryanulit