Я пытаюсь выяснить, почему следующий код не прошел проверку null
, и через некоторое время выдает исключение, и мне еще предстоит определить причину тайм-аута, которая, по-моему, и является причиной того, что я получил сообщение об исключении, обычно это происходит утром следующего дня или после обеденного перерыва. Но я все еще не могу надежно воспроизвести проблему.
var prePage = Page.PreviousPage as BasePage;
if (prePage != null)
{
PageSessionField = prePage.PageSessionField;
}
else
{
throw new Exception("Null previous page session exception.");
}
мое первое предположение: sessionState
timeout:
<sessionState cookieless="UseCookies" mode="InProc" timeout="20" useHostingIdentity="false" />
Но я попытался изменить значение timeout
на например, минимальное число 1
, но оно в большинстве случаев не выдает исключение, как ожидалось.
В противном случае настройки пула приложений в IIS: настройки времени ожидания и перезапуска выглядят нормально для меня.
Обновление:
Мне удалось повторить проблему, подождав 30 минут и возвращается и обновляет sh страницу и получает исключение, вызванное Page.PreviousPage
: null
.
Похоже, что тайм-аут вызван кодом Owin
, которые с использованием аутентификации Cook ie.
Похоже, что что-то делать с истекшим токеном AD FS, см. мой ответ для собранных мною доказательств.