Пользовательские страницы ошибок Google 404 и .NET

У меня есть веб-сайт ASP.NET 2.0 с настраиваемой страницей 404. Если контент не найден, сайт обслуживает настраиваемую страницу 404 с добавлением строки запроса aspxerrorpath = / mauro.aspx. Сама страница 404 обслуживается со статусом HTTP 200. Чтобы попытаться решить эту проблему, я добавил

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.StatusCode = 404;
    }

Я добавил виджет Google, и у меня с ним две проблемы. В Интернет-технологии он не отображается там, где должен. Если я добавлю его к контенту, я получаю «неизвестную ошибку» в строке 226 символа 79 или около того; если я добавлю его в раздел заголовка, окна поиска появятся над содержимым. В Firefox все работает нормально.

Итак, мои проблемы:

  1. Как сделать так, чтобы виджет появился в соответствии?
  2. Как сделать страницу с ошибкой рендерить как 404 с оригиналом имя и путь к файлу просил, чтобы, когда я прошу mauro.aspx Я получаю контент для 404 страница, но с URL-адресом mauro.aspx? (Я предполагаю, что буду нужно сделать Перезапись URL в begin_request файл global.asax, но хотел бы это подтвердить, прежде чем я делать что-нибудь глупое.)
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
9
0
6 886
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я обработал 404, сделав это в файле global.asax.

protected void Application_BeginRequest(object sender, EventArgs e)
{
    string url = Request.RawUrl;
    if ((url.Contains(".aspx")) && (!System.IO.File.Exists(Server.MapPath(url))))
    {
        Server.Transfer("/Error/FileNotFound.aspx");
    }
}

Теперь, если кто-нибудь может помочь мне с виджетом Google, это было бы здорово!

это критично для производительности, вы проверяете, существует ли файл или нет, каждый раз при каждом запросе.

Zain Shaikh 22.11.2010 13:00

Правильно, я мог бы сохранить результат в словаре или аналогичном, чтобы использовать его для более быстрой проверки ...

Mauro 22.11.2010 13:40

В ASP.NET 3.5 SP1 есть новый режим перенаправления, который теперь можно использовать, чтобы он не перенаправлялся. Он показывает страницу с ошибкой, но сохраняет URL-адрес прежним:

«Также хорошо для перенаправления URL-адресов. Если вы установите для параметра redirectMode в web.config значение« responseRewrite », вы можете избежать перенаправления на настраиваемую страницу ошибки и оставить URL-адрес в браузере нетронутым».

Спасибо, но в данном случае мы используем .Net 2.0, но я буду помнить информацию о .net 3.5 sp1.

Mauro 30.09.2008 13:40

Блин, мне очень жаль, я, должно быть, забыл часть вашего сообщения 2.0 к тому времени, когда мне нужно было закончить его читать. Виноват.

mattlant 30.09.2008 13:53

Нет проблем, я могу использовать это как аргумент в пользу использования 3.5 в будущем :)

Mauro 01.10.2008 17:36

проголосовали за, так как это все еще очень полезно, и хорошо, что 2,0 - прямо - не работает в этой области

annakata 02.04.2009 17:46

Другие вопросы по теме