нельзя установить время ожидания сеанса дольше после проверки всех других сайтов

После добавления этих настроек в web.config для увеличения времени ожидания сеанса:

<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424"
 stateNetworkTimeout="240" cookieless="false" timeout="240"></sessionState>

<authentication mode="Forms">
   <forms name="site" loginUrl="login.aspx" timeout="9999999" 
    slidingExpiration="true" protection="All" cookieless="AutoDetect" 
    requireSSL="false" enableCrossAppRedirects="true" defaultUrl="default.aspx"> 
   </forms>
</authentication>

Но сеанс моей веб-страницы всегда заканчивается через 20 минут. Что я пропустил?

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


person olidev    schedule 13.03.2012    source источник
comment
Я также нашел это: primaryobjects.com/CMS/Article86.aspx, но это обновит веб-страницу, которая мне не нравится   -  person olidev    schedule 14.03.2012


Ответы (2)


Я нашел ответ здесь: http://www.primaryobjects.com/CMS/Article86.aspx, добавив iFrame и открыв веб-страницу непосредственно перед завершением сеанса.

person olidev    schedule 20.03.2012

Что я пропустил?

Дело в том, что IIS может перезапустить ваш домен приложений в любое время. Например, после определенного периода бездействия, который по умолчанию составляет 20 минут. Или если вашим приложением достигнут определенный предел использования памяти или порог ЦП. Все это настраивается в свойствах домена приложения в IIS. И, конечно же, когда IIS перезапускает ваш AppDomain, все, что вы могли сохранить в памяти (например, сеанс), уходит в небытие.

person Darin Dimitrov    schedule 13.03.2012
comment
это означает, что я должен изменить его на IIS, а не на web.config? - person olidev; 14.03.2012
comment
@devn, даже если вы измените IIS, нет гарантии, что ваш AppDomain останется в живых. Вы можете использовать внепроцессное хранилище сеансов, если хотите, чтобы ваши сеансы пережили перезапуск AppDomain. Есть 2 возможности: StateServer или SQL Server. Прочтите об этом здесь: msdn.microsoft.com/en-us/library/ms178586. .aspx. Или даже лучше: вообще не используйте состояние сеанса. Просто установите его на model="Off" и создайте приложение без сохранения состояния и RESTful. - person Darin Dimitrov; 14.03.2012