Что делать, если зависают соединения с 1С через браузер при использовании веб-клиента?

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

В процессе эксплуатации систем на базе 1С:Предприятие 8.3 системные администраторы часто сталкиваются со специфической проблемой: пользователи не могут войти в базу через веб-браузер (веб-клиент), при этом прямое подключение через тонкий клиент по той же HTTP-ссылке работает абсолютно стабильно. Ситуация осложняется тем, что стандартные методы очистки пользовательского кэша не приносят результата, а сервер выдает ошибку 504 Gateway Time-out. Разберем детально, почему это происходит и как привести систему в рабочее состояние.

Анализ симптомов и диагностика проблемы

Проанализируем ситуацию: когда тонкий клиент работает, а браузер зависает, это однозначно указывает на проблему в цепочке взаимодействия "Браузер — Веб-сервер (IIS/Apache) — Расширение веб-сервера 1С — Кластер серверов 1С". Ошибка 504 говорит о том, что веб-сервер, выступая в роли шлюза, не получил своевременного ответа от вышестоящего сервера или внутреннего процесса.

Рассмотрим основные причины, по которым это может происходить:

  1. Блокировка рабочих процессов w3wp.exe (пул приложений IIS).
  2. Накопление "битых" сессий в системных временных каталогах, к которым обращается расширение 1С.
  3. Некорректная обработка завершения соединений в веб-клиенте.
  4. Конфликты протоколов обмена (например, проблемы с WebSocket).

Шаг 1: Глубокая очистка системного кэша и временных файлов

Обычного удаления папок в %AppData% пользователя недостаточно, так как веб-сервер работает от имени системной учетной записи или специально выделенного пользователя. Выясним, какие именно области нужно очистить вручную:

Очистка временных папок службы: Проанализируем содержимое каталогов C:\Windows\Temp и C:\Users\[Имя_Пользователя_Службы_1С]\AppData\Local\Temp. При некорректном завершении работы браузера там могут оставаться временные файлы сессий веб-клиента, которые блокируют создание новых дескрипторов. Остановим службу 1C:Enterprise 8.3 Server Agent и веб-сервер IIS, после чего полностью удалим содержимое этих папок.

Очистка контекста сеансов в кластере: В каталоге данных кластера (по умолчанию это C:\Program Files\1cv8\srvinfo\reg_1541\snccntx) хранятся данные сеансов. Если там накопились устаревшие или поврежденные файлы, это может привести к зависанию именно при попытке инициализации веб-сессии. Удалим содержимое этой папки при выключенных службах.

Шаг 2: Настройка пула приложений IIS

Часто проблема кроется в настройках Application Pool (Пула приложений), в котором опубликована база 1С. Рассмотрим настройки, которые помогут избежать ошибки 504:

Worker Processes: Убедимся, что параметр Maximum Worker Processes (Максимальное количество рабочих процессов) для пула приложений установлен в значение 1. Использование нескольких рабочих процессов для одной публикации 1С часто вызывает конфликты при распределении сессий, так как расширение 1С (wsapimod.dll) может некорректно синхронизировать данные между разными процессами w3wp.exe.

Таймауты: Проанализируем параметры Idle Time-out. По умолчанию IIS завершает процесс через 20 минут бездействия. Для стабильной работы 1С рекомендуется установить это значение в 0 (бесконечно), чтобы исключить внезапное прерывание связи между веб-сервером и rphost.

Шаг 3: Проверка и активация протокола WebSocket

Современные версии платформы 1С (начиная с 8.3.x) активно используют WebSocket для обеспечения интерактивности интерфейса. Если этот протокол не поддерживается или заблокирован, браузер переходит в режим long polling, что значительно увеличивает нагрузку на сервер и часто приводит к "зависаниям" из-за исчерпания лимитов соединений.

Выясним, установлена ли необходимая роль в Windows Server. Перейдем в Server Manager -> Roles and Features и проверим путь: Web Server (IIS) -> Web Server -> Application Development -> WebSocket Protocol. Если компонент не установлен, его необходимо добавить и перезапустить IIS.

Шаг 4: Устранение конфликтов библиотек и повторная публикация

Рассмотрим ситуацию, когда после обновления платформы в системе остаются ссылки на старые библиотеки. Даже если вы выполнили переопубликацию через конфигуратор, Handler Mappings в IIS могут продолжать ссылаться на wsapimod.dll из каталога старой версии 1С.

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

  1. Удалим публикацию базы через конфигуратор или утилиту webinst.
  2. Полностью деинсталлируем все старые версии платформы 1С с сервера.
  3. Вручную проверим файл web.config в каталоге публикации. Убедимся, что пути внутри тега scriptProcessor ведут к актуальному каталогу bin установленной платформы.
  4. Выполним повторную публикацию.

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


"C:\Program Files\1cv8\8.3.13.1644\bin\webinst.exe" -iis -wsdir MyBase -dir "C:\inetpub\wwwroot\MyBase" -connstr "Srvr=Server1C;Ref=MyBase;" -confPath "C:\Windows\System32\inetsrv\config\applicationHost.config"

Шаг 5: Исключение влияния сетевых протоколов (IPv6)

Проанализируем сетевые настройки. Иногда IIS пытается связаться с кластером 1С по протоколу IPv6 (используя адрес ::1), в то время как служба 1С слушает только IPv4. Это создает задержку в несколько секунд при каждом запросе, что в итоге выливается в 504 Gateway Timeout.

Чтобы исключить эту проблему, в файле hosts (C:\Windows\System32\drivers\etc\hosts) на сервере веб-сервера жестко пропишем соответствие localhost адресу 127.0.0.1:


127.0.0.1       localhost
# ::1           localhost

Шаг 6: Настройка антивирусного ПО

Важно помнить, что антивирусы с модулями фильтрации веб-трафика могут перехватывать пакеты от w3wp.exe. Проверим настройки антивируса на сервере и добавим следующие процессы в исключения (Trusted Applications) с разрешением сканирования сетевого трафика:

Резюме решения

Если вы столкнулись с зависанием веб-клиента, наиболее эффективным методом, как показывает практика, является **полная переустановка платформы с ручным удалением всех временных данных**. Это устраняет скрытые конфликты версий и очищает заблокированные кэши, которые не поддаются стандартным методам очистки. После переустановки обязательно проверьте наличие компонента WebSocket в настройках IIS и убедитесь, что в пуле приложений используется только один рабочий процесс.

← На главную