2015-05-01 2 views
0

У нас есть приложение (ASP Dot Net , Framework 4.0) в производстве, которое развернуто на IIS 7.5 window server 2012. Каждый день это приложение получает около 4000 requests, но проблема, с которой мы сталкиваемся в течение последних нескольких дней, заключается в том, что некоторые пользователи жалуются на то, что их сеанс истек. Мы проверили приложение и не увидели ошибок, которые могут привести к истечению срока действия сеанса. Мы проверили настройки IIS и настройки пула, но мы не видим достаточно справедливой причины для решения проблемы.Почему срок действия сессии истек

Пожалуйста, помогите нам в этом отношении, чтобы разобраться.


Возможно, мне нужно предоставить более подробную информацию, которая поможет вам решить мою проблему. Мы работаем в профессиональной организации, где мы запускаем много приложений на IIS для наших клиентов. Проблема, которую мы получаем, поступает в одно из тех приложений, которые мы создаем для нашего нового клиента и развернутых на сервере IIS 8.0 2012.

В веб-конфигурации нашего приложения время ожидания составляет один час, и далее мы убеждаемся, что мы должны 't направлять пользователя на страницу истечения срока действия сеанса, если возникает другая ошибка. Теперь, после внесения этих изменений, мы уверены, что проблема не должна быть связана с конфигурацией приложения или из-за его структуры. Теперь мы обеспокоены IIS. Другое дело, что на этот раз мы используем IIS 8.0, а не IIS 7.5, которые мы используем на всех наших серверах для разных приложений. Некоторые конфигурации IIS вы можете быть заинтересованы

  1. мы посвятили бассейн для применения дальнейшего пула настроен 2.0, потому что приложение на каркасе 3.5.
  2. максимальный рабочий процесс = 1
  3. бассейн рецикл в 28 часов

Позвольте мне знать, если вы могли бы направлять мне что-нибудь конкретно, если это связано с IIS 8.0, потому что мы думаем о возвращаясь назад к 7.5, его наше производственное приложение и клиенты продолжают жаловаться на это.

+1

Этого недостаточно, чтобы дать вам ответ. Потому что ни одно тело не может понять. Вы можете сделать обратное проектирование, проверив, что кто-то может делать активность в течение некоторого дня на сервере, как новая установка фреймворка, обновление окна, установленное исправление, установленное новое программное обеспечение и т. Д., Чтобы вы могли его удалить и повторить попытку. – Ajay2707

+0

Вам нужно будет добавить или включить ведение журнала уровня приложения для просмотра всех сеансов, когда они действительно истекают и для чего. Без этих исходных данных вы не сможете начать –

ответ

0

Жизненное время сеанса пользователя задано разработчиком/самостоятельно. Таким образом, у вас есть привилегия установить время таймаута сеанса пользователя в нужное время. Вот формат th объявления в web.config.

<sessionState mode="Off|InProc|StateServer|SQLServer" 
       cookieless="true|false" 
       timeout="number of minutes" 
       stateConnectionString="tcpip=server:port" 
       sqlConnectionString="sql connection string" 
       stateNetworkTimeout="number of seconds"/> 

Вы можете установить создание куки, чтобы истинным или ложным Решают/продиктовать, где информация сеанса должна быть сохранена (сервер, база данных ..) Вот некоторые ссылки, которые могут помочь.

MSDN

MSDN2

0

Я думаю, вы могли бы выделили пул приложений по умолчанию для этого приложения в IIS и тот же пул приложений, возможно, были распределены между другими приложениями тоже.

Шаг 1: Вы должны выделить отдельный пул приложений для каждого сайта в IIS.

Шаг2: в пуле приложений -> Расширенные настройки -> Изменить подсчитывать максимальный рабочий процесс до 1

Если вышеуказанное решение не работает, лучше попробовать решение, которое дается в https://technet.microsoft.com/en-us/library/cc781036(WS.10).aspx

Надеюсь это поможет.