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

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При обновлении технологической платформы 1С:Предприятие до версии 8.3.27.1989 (и смежных релизов этой ветки) многие администраторы, даже те, кто использует продвинутый OneS Cluster Admin для управления кластером, столкнулись с критической проблемой: информационные базы, опубликованные на веб-сервере IIS (Internet Information Services), начинают вести себя нестабильно. Пользователи жалуются на «подвисания», интерфейс перестает откликаться, а веб-сервисы начинают работать с огромными задержками. При этом откат на старую платформу (например, 8.3.26) мгновенно исправляет ситуацию, но современные конфигурации, такие как «Бухгалтерия предприятия 3.0» или «Управление торговлей 11.5», требуют именно новую версию платформы для корректной работы.

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

Выясняем причину: архитектурные изменения и блокировки (Deadlocks)

Проанализируем ситуацию с технической стороны. Начиная с ветки 8.3.27, разработчики 1С внесли изменения в работу библиотеки wsisapi.dll (это основной модуль, отвечающий за взаимодействие IIS и 1С). Основная проблема заключается во внутренних блокировках (так называемых дедлоках) внутри рабочего процесса IIS w3wp.exe. Когда поток модуля 1С обращается к ресурсам сервера, при определенных условиях он входит в состояние бесконечного ожидания, блокируя при этом выполнение других запросов. Это приводит к тому, что веб-сервер фактически «засыпает», хотя загрузка процессора на сервере может оставаться минимальной.

Дополнительно ситуацию усугубляет механизм взаимодействия с лицензиями и сессиями. Рассмотрим основные шаги, которые помогут стабилизировать систему без необходимости радикального отката на старые версии.

Способ 1. Настройка пула приложений IIS (Увеличение рабочих процессов)

Это самый быстрый и эффективный «костыль», который позволяет минимизировать последствия зависаний. Разберем по шагам, как изменить настройки пула приложений:

  1. Откроем Диспетчер служб IIS.
  2. Перейдем в раздел Пулы приложений (Application Pools).
  3. Найдем пул, в котором запущена ваша информационная база (обычно это 1C-Enterprise-App-Pool или стандартный DefaultAppPool).
  4. Нажмем на него правой кнопкой мыши и выберем Дополнительные параметры (Advanced Settings).
  5. Найдем параметр Максимальное число рабочих процессов (Maximum Worker Processes). По умолчанию там стоит значение 1.
  6. Установим значение 4, 8 или 10 (в зависимости от количества активных пользователей и объема оперативной памяти на сервере).

Почему это работает: Когда мы увеличиваем количество рабочих процессов, IIS создает несколько экземпляров w3wp.exe для одного пула. Если один из процессов «зависнет» из-за внутренней ошибки модуля 1С, остальные процессы продолжат обрабатывать входящие запросы пользователей. Это не лечит самупричину дедлока, но позволяет системе сохранять работоспособность, по аналогии с тем, как настраивается автоматический перезапуск рабочих процессов rphost в кластере 1С — для этих целей есть обработка принудительного завершения сеансов и управления ресурсами.

Важное замечание: Помните, что каждый дополнительный рабочий процесс потребляет оперативную память под кэш метаданных 1С. Убедитесь, что на сервере достаточно RAM, прежде чем выставлять большие значения (например, 20 и более процессов).

Способ 2. Правильная регистрация модуля wsisapi.dll

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

Проанализируем настройки Отображения обработчиков (Handler Mappings) для конкретной публикации 1С в IIS. Убедимся, что путь к модулю wsisapi.dll ведет именно в папку с новой платформой (например, C:\Program Files\1cv8\8.3.27.1989\bin\wsisapi.dll). Если путь указан верно, попробуем перерегистрировать его вручную через утилиту webinst, входящую в состав платформы.

Пример команды для командной строки (запускать от имени администратора):


"C:\Program Files\1cv8\8.3.27.1989\bin\webinst.exe" -iis -wsdir MyBase -dir "C:\inetpub\wwwroot\MyBase" -connstr "Srvr=Server1C;Ref=MyBase;"

Эта команда корректно обновит конфигурационные файлы IIS и пропишет актуальные пути к библиотекам новой платформы.

Способ 3. Борьба с разрастанием логов

Зависания платформы 8.3.27 часто сопровождаются аномальным ростом логов — для этого есть автоматическое отслеживание ошибок и уведомление о сбоях. Выясним причину: из-за ошибок подключения 1С начинает генерировать тысячи записей в секунду в системные журналы Windows и собственные технологические журналы. Это создает дополнительную нагрузку на дисковую подсистему, что еще сильнее «тормозит» работу 1С.

Рекомендуем выполнить следующие действия:

Способ 4. Конфликт с протоколом HTTP/2 и настройки рециркуляции

На современных операционных системах (Windows Server 2016/2019/2022) IIS по умолчанию использует протокол HTTP/2. Однако модуль расширения 1С (особенно в ветке 8.3.27) может работать с ним нестабильно. Рассмотрим вариант принудительного переключения на HTTP/1.1.

Для этого в редакторе реестра можно создать параметры, отключающие HTTP/2 для IIS, или использовать настройки конкретного сайта. Также крайне полезно настроить агрессивную Рециркуляцию (Recycling) пула приложений. Вместо стандартных 1740 минут (раз в сутки), установите рециркуляцию по расписанию в нерабочее время (например, в 3:00 ночи) и задайте лимит по использованию памяти. Это позволит автоматически «сбрасывать» накопившиеся ошибки в памяти процесса w3wp.exe. В экстренных случаях, когда база «зависла», можно использовать WEB приложение для управления сеансами и процессами rphost (поможет веб-инструмент для управления сеансами и процессами 1С), чтобы быстро вернуть систему в строй без перезагрузки всего сервера.

Альтернативное решение: переход на Apache

Если вышеуказанные настройки пула приложений (увеличение рабочих процессов) не помогают или вызывают нестабильность данных, стоит рассмотреть переход с веб-сервера IIS на Apache HTTP Server. Рассмотрим преимущества этого шага:

Архитектура взаимодействия 1С с Apache реализована через модуль mod_24.so (или аналогичные), который работает по иным принципам управления потоками. Практика показывает, что релизы платформы 8.3.27, которые «глючат» на IIS, работают абсолютно стабильно на Apache. Это радикальное, но действенное решение для тех, кто не может ждать выхода исправленного релиза платформы от компании 1С.

Резюмируя, отметим: если вы столкнулись с зависаниями на 8.3.27.1989, в первую очередь попробуйте увеличить число рабочих процессов IIS до 4-10. В большинстве случаев это позволяет пользователям комфортно работать в «Бухгалтерии 3.0» и «УТ 11.5» до тех пор, пока разработчики не выпустят более стабильную сборку wsisapi.dll.

← На главную