Как устранить ошибку «Сеанс отсутствует или удален» при работе 1С через IIS

Системный администратор 1С v8.3 (Управляемые формы) 1C:Бухгалтерия
← На главную

При публикации файловых баз 1С на веб-сервере Internet Information Services (IIS) системные администраторы часто сталкиваются с неприятной ошибкой: «Сеанс отсутствует или удален». Эта проблема может возникать внезапно, прерывая работу пользователей, и не всегда очевидно, виновата ли в этом сеть, сама платформа 1С или настройки сервера. Рассмотрим подробно причины возникновения этой ситуации и разберем по шагам методы ее решения.

Анализ работы пула приложений IIS

Первым делом проанализируем, как IIS управляет рабочими процессами. По умолчанию веб-сервер настроен на агрессивную экономию ресурсов, что в корне не подходит для стабильной работы 1С. Когда пользователь не проявляет активности, IIS может просто «прибить» рабочий процесс, что приведет к мгновенному обрыву сеанса.

Разберем, какие параметры в Диспетчере служб IIS необходимо изменить для стабильной работы:

  1. Откроем раздел Application Pools (Пулы приложений) и выберем пул, в котором работает наша база.
  2. Перейдем в Advanced Settings (Дополнительные параметры).
  3. Найдем параметр Idle Time-out (Тайм-аут простоя). По умолчанию там установлено 20 минут. Установим значение 0. Это предотвратит завершение процесса w3wp.exe при отсутствии запросов.
  4. Найдем раздел Recycling (Переработка). Параметр Regular Time Interval часто равен 1740 минутам. Установим его в 0, чтобы исключить непредсказуемую перезагрузку пула в рабочее время. Рекомендуется настроить Specific Times на глубокую ночь (например, 03:00), если перезагрузка всё же необходима.

Оптимизация базы данных и регламентных заданий

Часто причиной ошибки «Сеанс отсутствует или удален» становится нехватка памяти или зависание процесса из-за тяжелых фоновых задач. Выясним, какие настройки в самой конфигурации 1С помогут стабилизировать сеансы. Рассмотрим рекомендации по оптимизации файловой базы:

  1. Регламентные задания: В файловом варианте веб-сервер сам инициирует выполнение фоновых задач. Проанализируем список заданий и отключим те, что не критичны в рабочее время: ПолнотекстовыйПоискОбновлениеИндекса, СлияниеИндексаППД, обновление новостей и классификаторов.
  2. Журнал регистрации: Если база активно используется, запись в журнал может блокировать файл .1CD. Попробуем установить уровень детализации «Только ошибки» или временно отключить ведение журнала для диагностики.
  3. Полнотекстовый поиск: Если эта функция не критична, ее лучше отключить программно или через параметры 1С, так как индексация создает значительную нагрузку на дисковую подсистему и память процесса.

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


// Пример отключения регламентного задания программно
Задания = РегламентныеЗадания.ПолучитьРегламентныеЗадания();
Для Каждого Задание Из Задания Цикл
    Если Задание.Метаданные.Имя = "ОбновлениеИндексаППД" Тогда
        Задание.Использование = Ложь;
        Задание.Записать();
    КонецЕсли;
КонецЦикла;

Проверка прав доступа и временных папок

Проанализируем ситуацию с правами доступа. Веб-сервер работает от имени определенной учетной записи (обычно IIS AppPool\ИмяПула). Если у этой учетной записи недостаточно прав на запись во временные папки системы, сеанс может аварийно завершиться при попытке записи кэша.

Настроим права доступа для группы IIS_IUSRS (или конкретного пользователя пула) на следующие каталоги:

Важный момент: Если вы используете 64-битную платформу, убедитесь, что в настройках пула приложений опция Enable 32-Bit Applications установлена в значение False. Использование 32-битных библиотек в 64-битном процессе гарантированно приведет к сбоям.

Настройка USB-ключей и энергосбережения

Поскольку в системе используются USB-лицензии, необходимо исключить влияние механизмов энергосбережения Windows Server. Если операционная система «усыпляет» USB-порт для экономии энергии, 1С теряет лицензию, что приводит к немедленному удалению сеанса.

Выполним следующие шаги:

  1. Зайдем в Диспетчер устройств.
  2. В разделе Контроллеры USB найдем все Root Hub (Корневой USB-концентратор).
  3. В свойствах на вкладке Управление электропитанием снимем галочку «Разрешить отключение этого устройства для экономии энергии».
  4. В настройках электропитания сервера выберем план «Высокая производительность».

Корректировка файла конфигурации web.config

Посмотрим на параметры публикации. При публикации базы 1С в папке создается файл web.config. В нем можно вручную задать параметры, которые помогут избежать обрывов. Рассмотрим добавление параметров в строку соединения или настройки модуля:

В некоторых случаях помогает ограничение размера пула соединений непосредственно в файле конфигурации, чтобы предотвратить переполнение очереди запросов. Обратите внимание на секцию <handlers>, где прописан путь к wsap24.dll. Убедитесь, что путь ведет именно к той версии платформы, которую вы используете в данный момент.

Особенности на стороне клиента

Не забудем проанализировать и клиентскую часть. Современные браузеры (Chrome, Edge) имеют функции «Экономии памяти», которые переводят неактивные вкладки в спящий режим. Если бухгалтер открыл 1С, переключился на другую задачу на 15 минут, браузер может «заморозить» страницу. При возвращении пользователя браузер пытается восстановить соединение, но IIS к этому моменту уже мог закрыть сеанс.

Рекомендуется добавить адрес веб-публикации 1С в список исключений энергосбережения в настройках браузера. Также стоит проверить, не блокируются ли Cookie, так как именно в них хранится идентификатор сессии 1С.

Заключение

Подводя итог, можно сказать, что ошибка «Сеанс отсутствует или удален» чаще всего является следствием некорректных тайм-аутов в IIS или нехватки ресурсов процесса w3wp.exe. Последовательная настройка Idle Time-out, прав на C:\Windows\Temp и оптимизация регламентных заданий позволяют в большинстве случаев полностью избавиться от этой проблемы и обеспечить комфортную работу пользователей в файловом режиме через веб-интерфейс.

← На главную