Если я установлю
@ENABLESESSIONSTATE = false
затем
session("foo") = "bar"
тогда результат
Ошибка выполнения Microsoft VBScript '800a0114'
Переменная не определена 'Session'
... файл и строка №
Обычно это указывает на ошибочное предположение о ходе выполнения программы, и я отслеживаю и исправляю проблему.
Однако в определенном наборе обстоятельств у меня есть случай, когда фрагмент кода, который использует сеанс, всегда вызывается первым при каждом запросе страницы. Это связано с мониторингом производительности.
Этот код включает в себя форк - если у пользователя есть сеанс, мы идем одним путем, если нет, мы идем другим.
Но, конечно, когда пользовательский сеанс отсутствует, потому что мы ввели некоторый код, который выполняется с отключенным сеансом, мы получаем сбой.
Я мог бы решить это с
on error resume next
session("foo") = "bar"
if err.number <> 0 then
' do the no-has-session fork
else
' do the has-session fork
end if
on error goto 0
Но мне было интересно, есть ли менее хакерский подход.