#asp.net #google-pagespeed
#asp.net #google-скорость страницы
Вопрос:
У меня возникла проблема с использованием Google Page Speed Онлайн, хотя я обеспокоен тем, что в этом может быть большая картина. Я запустил свой сайт через онлайн-инструмент, смотрите результаты здесь: https://developers.google.com/pagespeed/#url=www.exclaimer.comamp;mobile=false . Обратите внимание, что он запрашивает перенаправление, как это произошло с http://www.exclaimer.com/oops.aspx?aspxerrorpath=/default.aspx
Теперь исходный URL-адрес, который я подключил http://www.exclaimer.com и http://www.exclaimer.com/default.aspx оба варианта работают в моем браузере. Я веду журнал любых страниц, которые не найдены, и действительно, /default.aspx находится там более тысячи раз (только изменение произошло 24 часа назад). Я не пытался использовать онлайн-инструмент Page Speed 1000 раз, поэтому я беспокоюсь, что это может быть другой сервис Google (или какая-либо другая автоматизированная система), который выходит из строя. Не было никаких жалоб от посетителей сайта, которые не смогли получить доступ, что наводит меня на мысль, что для обычных пользователей проблем нет, проблема возникает только от автоматизированных ботов или подобных.
Я думаю, мой вопрос в том, знает ли кто-нибудь способ, которым я могу изолировать источник проблемы? Я попытался изменить свой код регистрации 404, чтобы захватить страницу, с которой /default.aspx
осуществлялся доступ, но здесь мне не повезло, так как Url Referrer работает только при довольно специфических условиях.
Обновить
Я изменил свой код для регистрации сведений об ошибке, но для /default.aspx ничего не передается.
Exception error = Server.GetLastError();
string errorTitle = "";
string errorDetails = "";
if (error != null)
{
errorTitle = error.InnerException.Message;
errorDetails = error.ToString();
}
Server.ClearError();
... send to database
Ответ №1:
Если страница перенаправляется на страницу с ошибкой, то при обращении к этой странице должна возникать ошибка, поэтому вы хотите попытаться определить, что это за ошибка, чтобы определить, какая часть вашего кода вызывает у вас проблемы.
Я предполагаю, что проблема заключается в том, что вы предполагаете, что определенный http-заголовок должен быть отправлен с клиента, и вы не выполняете для него нулевую проверку. Когда вы получаете запрос от робота, который, возможно, не отправляет принятые языки или что-то в этом роде, вы получаете сбой.
В вашем глобальном обработчике ошибок вы должны регистрировать любое исключение, возникающее либо в базе данных, либо просто сбрасывая его прямо в файл. Это полезная информация в любое время, и ее следует фиксировать в случае любых других ошибок на сайте и отслеживать их причину.
Комментарии:
1. Я попытался изменить сценарий, как вы сказали, пожалуйста, смотрите Мой вопрос для кода.
2. Возможно, к тому времени ошибка будет потеряна. Попробуйте поместить свой контрольный код в обработчик события Application_Error в вашем глобальном файле.asax.
3. В конце концов, вы были совершенно правы. Мне потребовался весь день и много усилий, чтобы это выяснить, но в конце концов я добрался туда. Оказывается, это был какой-то код для перенаправления на иностранный сайт, если для языка браузера пользователя было установлено определенное значение. Я не проверял сначала, действительно ли массив Languages[] имеет какие-либо значения (и, возможно, именно поэтому он сломался для ботов). Большое спасибо!
4. Потрясающе. Рад, что смог помочь. 🙂