Уменьшение времени ожидания
Самый простой и самый ненавязчивый способ проверить это, вероятно, просто уменьшить время ожидания до довольно небольшого числа, например, 3 или 5 минут. Таким образом, вы можете сделать паузу на несколько минут, чтобы смоделировать более длительную паузу, не беспокоясь о перезапусках приложения или специальном коде сброса, которые могут повлиять на результаты теста.
Вы можете изменить время ожидания состояния сеанса в нескольких местах - глобально (в файле web.config, расположенном в папке config для соответствующей версии .NET Framework) или просто для вашего приложения.
Чтобы изменить время ожидания только для вашего приложения, вы можете добавить следующее в web.config вашего приложения:
<system.web>
<sessionState timeout="60" />
...
В качестве альтернативы, вы также можете изменить эту же настройку для своего приложения через диалоговое окно конфигурации IIS (я думаю, что вам все равно нужно определить web.config для вашего приложения, в противном случае Редактирование конфигурации будет отключено).
Чтобы получить доступ к этому, щелкните правой кнопкой мыши свое веб-приложение в IIS и выберите Свойства | ASP.NET вкладка | Изменить конфигурацию | Вкладка «Управление государством» | Время ожидания сеанса (минуты).
Обратите внимание, что вы также можете манипулировать этим параметром с помощью кода - если это уже делается, то параметр в файле web.config будет эффективно проигнорирован, и вам нужно будет использовать другой метод.
Вызов Session.Abandon ()
Немного более навязчивой техникой, чем установка низкого тайм-аута, было бы вызвать Session.Abandon (). Обязательно вызывайте это со страницы, отдельной от вашего приложения, поскольку сеанс фактически не заканчивается до тех пор, пока не будут обработаны все команды сценария на текущей странице.
Насколько я понимаю, это был бы довольно простой способ протестировать тайм-ауты сессии, не ожидая их на самом деле.
Принудительный перезапуск приложения
В конфигурации состояния сеанса по умолчанию вы можете имитировать время ожидания сеанса, полностью удаляя сеансы, вызывая перезапуск приложения. Это можно сделать несколькими способами, некоторые из которых перечислены ниже:
- Перезапуск пула приложений через
- оснастка IIS MMC
- командная строка (iisapp / AppPoolID / r)
- изменение web.config, global.asax или dll в каталоге bin
- Перезагрузите IIS через
- оснастка IIS MMC
- services.msc и перезапуск службы IIS Admin
- командная строка (iisreset)
Когда я упоминаю «конфигурация по умолчанию», я имею в виду веб-приложение, настроенное для использования режима состояния сеанса «InProc». Существуют другие режимы, которые могут фактически поддерживать состояние сеанса, даже если веб-приложение перезапускается (StateServer, SQLServer, Custom).
Трамбовка с механизмом отслеживания состояния
Предполагая, что ваше веб-приложение не настроено в режиме «без файлов cookie» (по умолчанию будут использоваться файлы cookie), вы можете удалить файл cookie, содержащий идентификатор сеанса, из клиентского браузера.
Однако я понимаю, что на самом деле это не имитирует тайм-аут, так как сервер все равно будет знать о сеансе, он просто не увидит, кто его использует. Запрос без идентификатора сеанса будет просто рассматриваться как невидимый запрос, требующий нового сеанса, который может или не может быть тем, что вы хотите проверить.