powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / какие настройки IIS могут влиять на время простоя
10 сообщений из 10, страница 1 из 1
какие настройки IIS могут влиять на время простоя
    #37867878
Фотография flashslash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
такой вопрос по таймаутам.
Есть ASP MVC приложение, в котором прописан timeout сессии 24 часа
но если не работать с приложением 15 минут ... то сессия отваливается.
В чем может быть дело?
какие настройки IIS могут влиять на время простоя?

спасибо!
...
Рейтинг: 0 / 0
какие настройки IIS могут влиять на время простоя
    #37867901
chessar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
flashslash,
В расширенной настройке пула приложения есть очень интересный раздел Recycling (это для IIS7+).
...
Рейтинг: 0 / 0
какие настройки IIS могут влиять на время простоя
    #37867906
chessar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Также еще там же в разделе Process Model есть параметр Idle Time-out - в минутах он по умолчанию 20.
...
Рейтинг: 0 / 0
какие настройки IIS могут влиять на время простоя
    #37867959
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
flashslash,

сессия может упасть в случае переполнения памяти на сессионных переменных (около 100МБайт), также если ты новые файлы на хостинг заливаешь, кроме того админ может IIS перезапустить. Что касается теории, то привожу цитату из MSDN:

Конфигурация и запуск состояния сеанса
В ASP.NET доступны три режима состояния сеанса: внутренний, сервер состояния и SQL-сервер. Независимо от выбора режима основные параметры конфигурации совпадают.

Состояние сеанса настраивается в два этапа. Во-первых, в HTTP-запрос внедряется модуль состояния сеанса. По умолчанию это задается в корне иерархии конфигураций в файле Machine.config.

В следующем примере демонстрируется образец содержимого файла Machine.config. Чтобы файл конфигурации работал правильно, следует указать полное имя соответствующей версии сборки System.Web.SessionState.SessionStateModule. Обычно, это версия, связанная с версией .NET Framework, используемой приложением. Сведения о способах получения полного имени сборки см. в разделе Имена сборок.

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<httpmodules>
   ...
    <!-- You must supply a valid fully qualified assembly name here. -->
    <!-- For this example to work correctly, the version number for -->
    <!-- the referenced assemby must match the version installed on -->
    <!-- your computer by the .NET Framework. -->
    <add name="sessionState" type="System.Web.SessionState.SessionStateModule, Version=1.0.3300.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" />
   ...
</httpmodules>



Задайте атрибуты служб состояния сеанса в зависимости от режима состояния сеанса в элементе конфигурации <sessionState>.

Настройка внутреннего режима
По умолчанию используется внутренний режим состояния сеанса. Чтобы включить внутренний режим, задайте значение атрибута mode элемента <sessionState> равным Inproc.

Ниже приведен образец конфигурации параметров внутреннего режима.

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<configuration>
    <system.web>
        <sessionState mode="Inproc"
                      cookieless="false"
                      timeout="20"/>
        </sessionState>
    </system.web>
</configuration>


Настройка сервера состояния
Перед включением режима сервера состояния убедитесь, что служба состояния ASP.NET запущена на удаленном компьютере. Эта служба устанавливается с ASP.NET и Visual Studio .NET в папку

системная_корневая_ папка \Microsoft.NET\Framework\номер_версии\aspnet_state.exe

В файле Web.config задайте значение атрибута mode элемента <sessionState> равным StateServer. Значение атрибута connectionString установите равным tcpip=имя_сервера:номер_порта.

Ниже приведен образец конфигурации параметров режима сервера состояния.

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<configuration>
    <system.web>
        <sessionState mode="StateServer"
                      stateConnectionString="tcpip=dataserver:42424"
                      cookieless="false"
                      timeout="20"/>
        </sessionState>
    </system.web>
</configuration>


Настройка SQL-сервера
Перед включением режима SQL-сервера запустите на SQL-сервере, который будет хранить состояние сеанса, InstallSqlState.sql или InstallPersistSqlState.sql. Эти сценарии хранят базу данных с именем ASPState, содержащую хранимые процедуры. Различие между сценариями заключается в расположении таблиц базы данных. После запуска сценария InstallSqlState.sql таблицы добавляются в базу данных TempDB, данные которой при перезагрузке компьютера не сохраняются. После запуска сценария InstallPersistSqlState.sql таблицы добавляются в базу данных ASPState, данные которой при перезагрузке компьютера сохраняются.

По умолчанию файлы сценариев устанавливаются в папку

корневая_системная_папка\Microsoft.NET\Framework\номер_версии

В файле Web.config задайте значение атрибута mode элемента <sessionState> равным SQLServer. Значение атрибута sqlConnectionString установите равным Integrated Security=SSPI;data source=имя_сервера;.

Ниже приведен образец конфигурации параметров режима SQL-сервера.

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<configuration>
    <system.web>
        <sessionState mode="SQLServer"
                      sqlConnectionString=" Integrated Security=SSPI;data source=dataserver;"
                      cookieless="false"
                      timeout="20"/>
        </sessionState>
    </system.web>
</configuration>


В режиме SQL-сервера состояние сеанса может работать в антисбойном кластере. Такой кластер представляет собой два или более идентичных резервных сервера, хранящих данные сеанса в базе данных SQL на отдельном компьютере. При сбое веб-сервера запросы будут обслужены другим сервером без потери данных. Чтобы настроить кластер, установите одинаковые значения для элементов <machinekey> в файле настройки Web.config веб-серверов. Затем установите значение строки подключения к SQL, чтобы она указывала на базу данных компьютера, хранящего данные сеанса.
...
Рейтинг: 0 / 0
какие настройки IIS могут влиять на время простоя
    #37867999
Фотография flashslash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем спасибо! будем пробовать!

Max Pro,
у нас действительно кластер и timeout = 1440 для базы данных в конфиге в sessionstate
...
Рейтинг: 0 / 0
какие настройки IIS могут влиять на время простоя
    #37868005
Фотография flashslash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chessar,

там полторы тысячи минут....
...
Рейтинг: 0 / 0
какие настройки IIS могут влиять на время простоя
    #37868106
Фотография flashslash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max Pro,

у нас все сделано через настройки сервера состояния...
из общения с админам и я понял, что все сделано так как вы и написали.
вам большое спасибо, но проблема еще остается...
...
Рейтинг: 0 / 0
какие настройки IIS могут влиять на время простоя
    #37868166
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
flashslashMax Pro,

у нас все сделано через настройки сервера состояния...
из общения с админам и я понял, что все сделано так как вы и написали.
вам большое спасибо, но проблема еще остается...
Вообще 15 минут - это меньше нормы (20 минут). Отсюда следует, что сессия слетает просто. У меня такое было при превышении лимита памяти. После отказа от практики хранения в сессии больших объектов, проблема исчезла. Проверьте, чтобы в сессии хранились только переменные "по значению", а не "по ссылке". Размер каждой переменной не должен превышать 16 байт - это булевские переменные, числа и гуиды. Строки уже работают "по ссылке", их храните в БД. Если БД недоступна, можно хранить строки в Вивстейте так называемом, но это сильно грузит трафик.
...
Рейтинг: 0 / 0
какие настройки IIS могут влиять на время простоя
    #37868278
Фотография flashslash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max Pro,

большое спасибо! буду проверять..
...
Рейтинг: 0 / 0
какие настройки IIS могут влиять на время простоя
    #37869677
Фотография flashslash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и вот, что я выяснил..
при создании сессии просто игнорируются настройка timeout в конфиге.
и по умолчанию задано значение 20.
Ессно, я сейчас эксериментирую, задав в коде явно значение таймаута = 100.

странно все это...
может быть такое, что при авторизации игнорируется настройки конфига?

а то, выходит, что нужно писать код, который вытаскивает значение таймаута из конфига и задает это значение для сессии...
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / какие настройки IIS могут влиять на время простоя
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]