Почему крашится 1С на веб-сервере IIS после обновления платформы и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) Промышленность, строительство и АПК
← На главную

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

Проверяем корректность публикации и сопоставление обработчиков

Первым делом проанализируем состояние сопоставления обработчиков в IIS. При установке новой версии платформы создается новый каталог bin, содержащий актуальные библиотеки. Часто автоматическая перепубликация базы из конфигуратора не обновляет пути в настройках самого IIS, либо делает это некорректно. Рассмотрим, как проверить это вручную.

Откроем Диспетчер служб IIS, выберем нашу опубликованную базу и перейдем в раздел «Сопоставление обработчиков» (Handler Mappings). Нам необходимо убедиться, что расширение .1cws или .1crs ссылается на библиотеку wsisapi.dll из каталога именно той версии платформы, которую мы только что установили. Если путь ведет в папку старого релиза, который, возможно, уже удален, это гарантированно приведет к падению рабочего процесса w3wp.exe.

Обратим внимание на права доступа. Выберем нужный обработчик, нажмем «Редактировать» и проверим «Ограничения запроса». На вкладке «Доступ» должно быть выбрано «Выполнение». Без этого флага библиотека не сможет корректно обрабатывать POST-запросы от тонкого клиента, что и вызывает ошибки типа /e1cib/logForm.

Настройка параметров информационной базы: время спящего сеанса

Выясним причину, связанную с внутренними механизмами управления сеансами 1С. В некоторых случаях вылет происходит строго через определенный промежуток времени (например, 15 минут). Это часто связано с тем, что веб-сервер считает сеанс «уснувшим» и принудительно его завершает.

Для исправления ситуации выполним следующие действия:

  1. Запустим информационную базу в режиме «Предприятие».
  2. Перейдем в раздел «Администрирование» — «Обслуживание» — «Потоки сеансов» (или «Параметры информационной базы»).
  3. Найдем параметр «Время завершения спящего сеанса».

Если там установлено небольшое значение (например, 180 секунд или 3 минуты), веб-клиент может закрываться при кратковременных простоях. Рекомендуется установить значение не менее 86400 (24 часа), чтобы избежать преждевременного разрыва связи.

Оптимизация пула приложений IIS

Проанализируем наиболее глубокую причину — автоматическую перезагрузку (Recycling) пула приложений. По умолчанию в IIS настроено значение «Regular Time Interval» (Постоянный временной интервал), равное 1740 минутам. Однако, при определенных нагрузках или утечках памяти, процесс может перезапускаться чаще. В момент перезапуска пула происходит обновление временных файлов ИБ (в папке 1Cv8Temp), что для активного сеанса 1С является критическим событием и приводит к выбросу пользователя из системы.

Рассмотрим по шагам, как настроить пул приложений для стабильной работы 1С:

  1. В Диспетчере IIS перейдем в раздел «Пулы приложений».
  2. Выберем пул, на котором опубликована база (обычно это 1Cv8 или DefaultAppPool).
  3. Нажмем «Вторичные настройки» (Advanced Settings).
  4. В блоке «Вторичная переработка» (Recycling) найдем параметр «Постоянный временной интервал (минуты)». Установим его в значение 0.

Установка в 0 отключает периодическую перезагрузку по времени. Это предотвратит внезапные обрывы сессий. Если вы опасаетесь утечек памяти, лучше настроить «Конкретное время» (Specific Times) на глубокую ночь, когда в базе гарантированно никого нет.

Разрядность платформы и библиотеки

Посмотрим на ситуацию со стороны системных ресурсов. Если вы установили 64-битную платформу, убедитесь, что пул приложений IIS настроен соответствующим образом. Проанализируем параметр «Разрешить 32-разрядные приложения» в дополнительных настройках пула. Если платформа 64-битная, этот параметр должен стоять в положении False. Несоответствие разрядности процесса IIS и загружаемой библиотеки wsisapi.dll — одна из самых частых причин мгновенного «падения» публикации.

Работа с технологическим журналом для глубокого анализа

Если вышеуказанные методы не помогли, необходимо настроить Технологический Журнал (ТЖ). Это позволит увидеть, на какой именно операции происходит прерывание. Создадим файл logcfg.xml в каталоге conf платформы. Пример минимального конфига для отслеживания ошибок:


<config xmlns="http://v8.1c.ru/7.4/config/logcfg">
  <log location="C:\LOGS\1C" history="24">
    <event>
      <eq property="Name" value="EXCP"/>
    </event>
    <event>
      <eq property="Name" value="PROC"/>
    </event>
    <property name="All"/>
  </log>
</config>

Проанализируем собранные логи. Если мы видим события EXCP (Exception) с кодом 0xc0000005 в модуле wsisapi.dll, это свидетельствует об ошибке доступа к памяти. В таком случае стоит рассмотреть возможность перехода на использование Автономного сервера 1С (библиотека ibsrv.exe), который встроен в современные платформы и работает стабильнее, чем классический IIS в связке с файловой базой.

Права доступа к временным каталогам

Разберем еще один важный момент: права пользователя, от имени которого работает IIS (обычно это IIS AppPool\ИмяПула). После обновления платформы система может потерять доступ к папке временных файлов. Проверим, что у этого пользователя есть права «Полный доступ» на следующие каталоги:

Иногда помогает очистка кэша самого сервера. Рассмотрим, как это сделать: нужно остановить службу IIS (команда iisreset /stop), удалить содержимое папок Temporary ASP.NET Files и папок кэша в профиле пользователя, под которым запускается служба, а затем снова запустить IIS.

Подводя итог, можно сказать, что в большинстве случаев проблема решается комбинацией трех факторов: актуализацией путей к dll, отключением рециклинга пула приложений и увеличением таймаутов спящих сеансов в настройках самой 1С.

← На главную