← На главную
При работе с файловыми базами 1С:Предприятие 8.3 через веб-сервер IIS (в частности, IIS 7.5 на Windows Server 2008 R2) системные администраторы часто сталкиваются с бессистемным зависанием веб-сервера. Пользователи тонких или веб-клиентов теряют связь с базой, а при попытке перезапустить или остановить службу IIS в консоли управления она зависает до тех пор, пока рабочий процесс w3wp.exe не будет завершен вручную через Диспетчер задач.
Проанализируем основные причины возникновения этой проблемы и разберем по шагам действенные способы ее решения.
Причины зависания IIS и модуля wsisapi.dll
Выясним, почему возникает подобный сбой. При публикации файловой информационной базы 1С на веб-сервере IIS обработка всех серверных вызовов выполняется внутри процесса w3wp.exe с помощью библиотеки расширения 1С wsisapi.dll. К основным факторам зависания относятся:
- Зависание фоновых и регламентных заданий: В файловом режиме регламентные задачи исполняются в контексте сеанса веб-сервера. При сбое или повреждении индексов (например, полнотекстового поиска) процесс
w3wp.exe может плотно заблокировать файлы информационной базы и уйти в бесконечное ожидание.
- Взаимные блокировки файлов (Deadlocks): При одновременной работе нескольких пользователей файловый режим 1С производит блокировки на уровне операционной системы. Поток
wsisapi.dll зависает при ожидании освобождения файла 1Cv8.1CD.
- Некорректные параметры пула приложений IIS: Настройки по умолчанию (тайм-аут простоя, уход пула в спящий режим при отсутствии активности) приводят к разрыву HTTP-соединений с тонкими клиентами и зависанию потоков.
- Проблемы с правами доступа учетной записи пула: Использование стандартной учетной записи
ApplicationPoolIdentity или IUSR при недостаточности прав на каталоги с базой 1С вызывает ошибки доступа при смене сеансовых файлов.
- Блокировка антивирусным ПО: Сканирование каталога базы 1С или служебных папок IIS во время активных запросов приводит к монопльному захвату файлов антивирусом.
Шаг 1. Диагностика и устранение зависших фоновых заданий
Проанализируем состояние фоновых процессов в информационной базе. Частой причиной плотного зависания w3wp.exe является сбой регламентного задания индексации полнотекстового поиска.
- Откроем базу 1С в режиме «Предприятие» под правами администратора и перейдем в монитор пользователей или Журнал регистрации.
- Проверим, нет ли зависших фоновых задач, связанных с полнотекстовым поиском.
- Если регламентное задание зависло и не сбрасывается штатно, полностью очистим индексы. В случае жесткого сбоя переведем базу в монопольный режим, закроем все процессы
w3wp.exe и вручную удалим файлы индексов полнотекстового поиска из каталога базы данных (папка 1Cv8FTxt).
- После запуска базы заново запустим процедуру «Обновить индекс» в управлении полнотекстовым поиском.
Шаг 2. Оптимизация и тонкая настройка пула приложений IIS
Рассмотрев работу пула IIS, перейдем к его правильной конфигурации. Зайдем в «Диспетчер служб IIS» и выполним следующие настройки:
- Изолированный пул: Выделим опубликованную базу 1С в отдельный пул приложений, не используя общий
DefaultAppPool.
- Отключение управляемого кода: В свойствах пула приложений установим параметр Версия среды .NET Framework в значение Без управляемого кода (No Managed Code), так как модуль
wsisapi.dll является нативным ISAPI-расширением.
- Отключение тайм-аута простоя: В дополнительных параметрах пула приложений находим блок «Модель процесса» и меняем параметр Тайм-аут по отсутствию активности (минуты) (Idle Time-out) с
20 на 0. Это предотвратит завершение и уход процесса w3wp.exe в спящий режим.
- Удостоверение пула: В параметре Удостоверение (Identity) изменим значение со стандартного на Особая учетная запись и укажем локального администратора сервера, имеющего явные полные права на папку с файловой базой 1С.
- Поддержка 32-разрядных приложений: Если на 64-битной Windows Server используется 32-разрядный релиз платформы 1С:Предприятие, установим параметр Разрешены 32-разрядные приложения в
True.
Шаг 3. Добавление исключений в антивирус и анализ логов Windows
Разберем дополнительные системные шаги для предотвращения внешних блокировок:
- Добавим в исключения антивирусного сканера каталог с файловой базой 1С (файл
1Cv8.1CD), системный каталог IIS C:\inetpub и временные папки пользователей.
- При повторном зависании откроем «Просмотр событий» Windows (Event Viewer) и изучим разделы
Application и System. Обратим внимание на ошибки с кодами 1000 (Application Error) и 5011 (WAS), которые укажут на упавший поток библиотеки wsisapi.dll.
Альтернативные способы решения
Если после выполнения всех настроек IIS зависания файловой базы продолжаются из-за высокой активности пользователей, рассмотрим альтернативные варианты архитектуры:
- Переход на веб-сервер Apache: Публикация файловой базы 1С на Apache (версий 2.4) демонстрирует более высокую стабильность обработки ISAPI/модульных вызовов 1С и менее восприимчива к зависаниям рабочих процессов под Windows.
- Перевод базы в клиент-серверный режим: Развертывание сервера 1С:Предприятия совместно с СУБД (PostgreSQL, MS SQL Server) полностью устраняет проблему блокировок файлов в
w3wp.exe. В этом случае IIS выполняет только роль прокси-транслятора HTTP-запросов к кластеру 1С.
- Использование RDP: Организация работы пользователей через удаленный рабочий стол (Terminal Server) без публикации базы на веб-сервере.