Подтвердить что ты не робот

Состояние сеанса в этом контексте недоступно

Я хочу прочитать идентификатор сеанса в событии ошибки приложения, но всегда получаю ошибку "Состояние сеанса недоступно в этом контексте". Зачем? Странно то, что у меня такой же код в другом приложении asp.net, и все работает нормально.

void Application_Error(object sender, EventArgs e)
{

        var sessionId = Session.SessionID;
        //skipped code

}
4b9b3361

Ответ 1

Объект сеанса может быть недоступен, это зависит от того, когда произошла ошибка.

Например, если в Begin_Request произошла ошибка, сеанс не будет доступен, поскольку он еще не создан.

Таким образом, иногда это иногда срабатывает, в зависимости от того, когда произошла ошибка.

Лучше всего проверить состояние объекта сеанса перед доступом к идентификатору сеанса, например.

HttpContext context = HttpContext.Current;

if (context != null && context.Session != null) ...

Ответ 2

проверьте, не произошло ли какое-либо событие в С#, которое отображается на элемент управления или проблема в конструктивной части

Ответ 3

Application_error может срабатывать в ситуациях, когда сеанс отсутствует, например, когда сборщик мусора очищается. Источником ошибки может быть не пользовательский поток.

Просто проверьте, является ли первый сеанс первым.

Саймон