Ответ 1
Во-первых, я хотел бы подтвердить, правильно ли это предположение.
Да, это предположение абсолютно правильно, если вы используете режим состояния сеанса в памяти. В этом случае сеанс хранится в памяти, и поскольку IIS может срывать AppDomain при разных обстоятельствах (период бездействия, достигнуты транзакции CPU/памяти,...) данные сеанса будут потеряны. Вы можете использовать режим состояния сеанса вне процесса. Либо StateServer, либо SQLServer. В первом случае сеанс хранится в памяти специального выделенного компьютера, на котором запущена служба aspstate Windows, а во втором случае это выделенный SQL Server. SQL Server является наиболее надежным, но, очевидно, самым медленным.
1) Будет ли метод обновления работать для моего сценария, даже если страница сведена к минимуму?
Скрытый iframe по-прежнему работает, чтобы поддерживать сеанс, но, как я уже говорил ранее, могут возникнуть некоторые условия, когда IIS выгружает приложение в любом случае (достигнуты транзакции CPU/памяти = > , вы также можете настроить это в IIS).
2) Существуют ли какие-либо другие методы, которые могут увеличить время сеанса, которое отменяет настройку тайм-аута IIS?
Предыдущий метод не увеличивает тайм-аут сеанса. Он просто поддерживает сеанс в режиме ожидания, регулярно отправляя HTTP-запросы на сервер, чтобы предотвратить отказ IIS от AppDomain.
3) Также я прочитал несколько вопросов в переполнении стека, где ответы что тайм-аут сеанса IIS предназначен для класических страниц ASP. Тогда почему мой расширенный тайм-аут не стреляет?
Нет такой вещи, как тайм-аут сеанса IIS. Сеанс представляет собой артефакт ASP.NET. IIS - это веб-сервер, который ничего не знает о сеансах.
Лично я не использую сеансы в своих приложениях. Я просто отключил их:
<sessionState mode="Off"></sessionState>
и использовать стандартные HTTP-артефакты, такие как файлы cookie, параметры строки запроса,... для сохранения состояния. Я предпочитаю сохранять информацию в своем бэкэнд и извлекать ее позже, используя уникальные идентификаторы вместо того, чтобы полагаться на сеансы.