У меня есть веб-сайт 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 все работает нормально.
Итак, мои проблемы:





Я обработал 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, это было бы здорово!
Правильно, я мог бы сохранить результат в словаре или аналогичном, чтобы использовать его для более быстрой проверки ...
В ASP.NET 3.5 SP1 есть новый режим перенаправления, который теперь можно использовать, чтобы он не перенаправлялся. Он показывает страницу с ошибкой, но сохраняет URL-адрес прежним:
«Также хорошо для перенаправления URL-адресов. Если вы установите для параметра redirectMode в web.config значение« responseRewrite », вы можете избежать перенаправления на настраиваемую страницу ошибки и оставить URL-адрес в браузере нетронутым».
Спасибо, но в данном случае мы используем .Net 2.0, но я буду помнить информацию о .net 3.5 sp1.
Блин, мне очень жаль, я, должно быть, забыл часть вашего сообщения 2.0 к тому времени, когда мне нужно было закончить его читать. Виноват.
Нет проблем, я могу использовать это как аргумент в пользу использования 3.5 в будущем :)
проголосовали за, так как это все еще очень полезно, и хорошо, что 2,0 - прямо - не работает в этой области
это критично для производительности, вы проверяете, существует ли файл или нет, каждый раз при каждом запросе.