ASP.Net Session.Timeout - достаточно ли StateServer и Programmatic Session.Timeout?

Читая вокруг, похоже, что для изменения времени сеанса asp.net при использовании модели InProc требуется два изменения ...

  1. web.config - Бездействие пула приложений
  2. Тайм-аут - кажется, вы должны установить это> = Session.Timeout

Я понял это из чтения http://asp-net.vexedlogic.com/2012/05/23/aspasp-net-session-timeout-how-do-i-change-it/.

Итак, если у меня нет возможности изменять тайм-ауты в пулах приложений, мне интересно, перейду ли я на использование StateServer, а затем программно установлю Session.Timeout, как описано в статье выше, мне нужно беспокоиться о том, какой Интернет. config @timeout и настройки простоя пула приложений установлены на? Мои два действия обо всем позаботятся?

Если он позаботится об этом, я думаю, следующий вопрос заключается в том, знает ли кто-нибудь, как производительность сравнивается с InProc и StateServer.

Заранее спасибо.


person Terry    schedule 13.02.2014    source источник


Ответы (1)


Насколько я понимаю, если вы переключитесь с внутрипроцессного на сервер состояния, настройка времени ожидания простоя (в IIS) не повлияет на время ожидания состояния сеанса.

По-прежнему будут рабочие процессы, которые могут быть завершены в пуле приложений, если нет активности (если пройден тайм-аут простоя), но состояние сеанса (т.е. значения сеанса пользователя и сеанса приложения) будет сохраняться сверх этого. Тайм-аут вашего сеанса должен просто контролироваться значением тайм-аута, установленным в конфигурации (здесь ) т.е.

<configuration>
  <system.web>
    <sessionState mode="StateServer"
      stateConnectionString="tcpip=SampleStateServer:42424"
      cookieless="false"
      timeout="20"/>
  </system.web>
</configuration>

Inproc работает быстрее, чем StateServer, поскольку данные сеанса необходимо сериализовать / десериализовать при сохранении. Он также может храниться на отдельной машине, что может вызвать некоторую задержку. Но, конечно, есть преимущества State Server, то есть сохранение состояния сеанса между перезапусками приложения (повторное использование пула приложений), состояние может быть разделено между несколькими серверами в веб-ферме.

Этот вопрос также обсуждаются плюсы и минусы использования режима сервера состояний.

person Damon    schedule 13.02.2014
comment
Спасибо ... ваше утверждение об управлении через настройку в конфигурации ... если это установлено на 20, то в Session_Start я программно установил его, мое программное назначение должно иметь приоритет, верно? - person Terry; 14.02.2014
comment
@Terry, я так считаю, этот вопрос также подтверждает, что это так. Я бы предложил сначала провести тестирование с небольшими таймаутами сеанса (например, 2 минуты), чтобы убедиться. - person Damon; 14.02.2014