Развертывание веб-доступа для 1С:Предприятие 8.3 — это стандартная задача для системного администратора, но она часто сопровождается труднообъяснимыми зависаниями. Типичная ситуация: база опубликована на веб-сервере (IIS или Apache), при переходе по ссылке открывается окно запуска, появляется фирменная «крутилка» заставки, но до выбора пользователя или ввода пароля дело не доходит. При этом локальное подключение через тонкий клиент работает исправно. В данной статье мы подробно разберем, почему это происходит, и как пошагово диагностировать и устранить проблему.
Рассмотрим ситуацию, когда 1С успешно работает внутри локальной сети, но зависает при обращении через браузер. Одной из наиболее распространенных причин является блокировка обмена данными между компонентами системы защиты 1С и веб-сервером. Выясним причину: веб-сервер при инициализации сессии должен получить лицензию. Если фаервол или антивирус с сетевым экраном блокируют этот процесс, модуль расширения веб-сервера wsisapi.dll переходит в состояние бесконечного ожидания.
Проанализируем шаги по настройке сетевого экрана:
Sentinel LDK License Manager. Без доступа к нему через веб-интерфейс лицензия не будет получена, и заставка «зависнет».w3wp.exe для IIS) и процессы сервера 1С (ragent.exe, rmngr.exe, rphost.exe).Часто проблемы начинаются после обновления платформы 1С. Разберем ситуацию: вы установили новую версию платформы, обновили публикацию, но система перестала пускать пользователей. Одной из скрытых причин является конфликт разрядности (32-бит против 64-бит).
Посмотрим на настройки IIS. Модуль wsisapi.dll должен соответствовать разрядности пула приложений, в котором работает база. Если вы установили 64-битную платформу, выполним следующие действия:
DefaultAppPool или специально созданный пул).Несоответствие этого параметра приводит к тому, что библиотека загружается в память, но не может корректно вызвать функции платформы, что и вызывает визуальное зависание на этапе загрузки скриптов.
Проанализируем ситуацию с правами доступа. Когда пользователь заходит через браузер, все действия на сервере выполняются от имени пользователя, назначенного пулу приложений IIS (обычно это IIS AppPool\имя_пула или IUSR). Если у этого пользователя недостаточно прав для чтения файлов лицензий или записи временных файлов, сессия не будет инициализирована.
Проверим и настроим права на следующие каталоги:
C:\ProgramData\1C\1cv8\conf — здесь хранятся файлы с информацией о лицензиях. Пользователь веб-сервера должен иметь права на «Чтение» и «Просмотр содержимого папки».C:\Windows\Temp — веб-сервер активно использует системную временную папку. Настроим для пользователя пула приложений права «Изменение» на эту папку.C:\Program Files\1cv8\8.3.X.X\bin). Убедимся, что есть права на чтение исполняемых файлов и библиотек.Иногда причина кроется в самом файле описания публикации default.vrd. Если в нем неверно указаны параметры соединения или настройки пула соединений, пользователи будут сталкиваться с задержками. Рассмотрим пример структуры файла default.vrd, на который стоит обратить внимание:
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/MyBase"
ib="Srvr="MyServer";Ref="MyBase";">
<ws>
<point name="Mobile" alias="mobile.1cws" enable="true"/>
</ws>
<standardOdata enable="false"/>
<pool size="10" timeout="5"/>
</point>
Обратим внимание на параметр pool size. Если количество активных запросов от браузеров превышает установленный размер пула, новые запросы будут стоять в очереди, что визуально выглядит как зависание интерфейса. Попробуем увеличить значение size, если в базе одновременно работает много пользователей через веб.
В логах веб-сервера часто можно заметить обращения сторонних инспекторов безопасности (например, CyberOKInspect или модули антивирусов). Выясним причину: 1С обменивается с сервером множеством мелких POST-запросов. Системы защиты могут интерпретировать такую активность как попытку взлома или DDOS-атаку и временно блокировать соединение.
Рекомендуем выполнить следующие действия:
Если вышеперечисленные методы не помогли, разберем самый надежный способ поиска ошибки — настройку Технологического журнала. Создадим файл logcfg.xml в папке C:\Program Files\1cv8\conf (или в папке conf конкретной версии платформы).
Рассмотрим пример настройки для отслеживания ошибок инициализации сессии:
<config xmlns="http://v8.1c.ru/7.1/config">
<log location="C:\LOGS\1C" history="24">
<event>
<eq property="Name" value="EXCP"/>
</event>
<event>
<eq property="Name" value="SDBL"/>
</event>
<property name="all"/>
</log>
</config>
После создания файла и перезапуска службы IIS, попробуем снова зайти через браузер. В папке C:\LOGS\1C появятся файлы логов. Проанализируем их на наличие событий EXCP (Exception). Если вы увидите ошибки вида «Access denied» или «License not found», это укажет на конкретную причину зависания заставки.
Завершим наш разбор нюансами на стороне клиента. Веб-клиент 1С активно использует кэш браузера для хранения программного кода интерфейса. После обновления платформы старый кэш может конфликтовать с новыми библиотеками wsisapi.dll.
Выполним очистку:
Таким образом, мы рассмотрели комплексный подход к решению проблемы зависания 1С в веб-интерфейсе. В большинстве случаев проблема решается настройкой правил фаервола и проверкой прав доступа пользователя IIS к файлам лицензий.