Я хотел бы проверить существование Session в классе базовой страницы, прежде чем использовать его, но я обнаружил, что если он не существует, он выдаст исключение, просто проверив:
if (Session != null)
{
Session.Remove("foo");
}
Будет выбрасывать это исключение:
Состояние сеанса может использоваться только в том случае, если для свойства enableSessionState установлено значение true, либо в
файл конфигурации или в директиве Page. Пожалуйста, также убедитесь, что
System.Web.SessionStateModule или пользовательский модуль состояния сеанса включены в
\\ раздел в конфигурации приложения.
Проверка происходит в событии Load базового класса страниц, из которого происходят все мои страницы aspx. В приложении включен сеанс, а модуль указан в узле httpModules. Это приложение, которое часто использует сеанс, обычно без проблем.
Я получаю эту ошибку только на определенных страницах, и в большинстве случаев она ненадежна. Я знаю, что должен сделать что-то другое, чтобы предотвратить ошибку, но я не уверен, что?
Возможно, я вызываю сессию слишком рано в жизненном цикле?
Не правильно ли я проверяю, доступен ли сеанс?