я следующий код в класс, который называется страницей .NET (ASP.NET WebForms во время события page_load):HttpContext.Current равна нулю для ботов
public static bool BrowserSupportsJS
{
get { return (HttpContext.Current.Session["js_support"] != null
&& ((bool)HttpContext.Current.Session["js_support"]));
}
Эта линия бросает исключение для любого bot: googlebot, bingbot и т. д.
Исключение: ссылка объекта не установлена в экземпляр объекта и находится на линии доступа get. Похоже, HttpContext.Current имеет значение null.
Почему бы не просто проверить 'HttpContext.Current' за нуль до доступа к ней? –
Правильно. Просто проверьте, является ли оно нулевым и возвращает false для всего. –
@GeorgeJohnston Я сомневаюсь, что 'HttpContext.Current' имеет значение null в коде, который выполняется при получении HTTP-запроса. Скорее всего, это 'Session', поскольку он полагается на файлы cookie сеансов, которые боты обычно не поддерживают. –