У меня есть веб-приложение ASP.NET 2.0, которое обращается к нескольким веб-службам ASP.NET 2.0. Оба используют сеансы ASP.NET для сохранения данных сеанса.
Чтобы предупредить пользователя о тайм-аутах сеанса приложения, я использую модифицированную версию Элемент управления тайм-аутом Трэвиса Коллинза, чтобы отобразить ModalPopupExtender с заголовком« Срок действия вашего сеанса истекает »и кнопки« Оставаться в системе »и« Выйти ». При нажатии «Оставаться в системе» он выполняет обратный вызов пустому методу, который сбрасывает таймер сеанса (я считаю, потому что каждый HttpRequest вызывает вызов ResetItemTimeout).
Чтобы предотвратить тайм-аут сеанса в сервисах раньше, чем в приложении, я установил для них большее время ожидания и планировал вызывать для них пустой метод всякий раз, когда таймер сеанса сбрасывается в приложении. Однако нет события состояния сеанса для сбрасываемого таймера.
Должен ли я переопределить заголовок ResetItemTimeout? Как мне это сделать? Или есть другой способ достичь моей цели (например, поддерживать сеанс службы, пока служба приложения работает)? Я подумываю о расширении контроля времени ожидания для отправки контрольных сигналов через приложение (например, идея Тима Макки) .