Почему виснет веб-сервер IIS 7.5 при работе с 1С 8.3 и как это исправить?

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

При работе с файловыми базами 1С:Предприятие 8.3 через веб-сервер IIS (в частности, IIS 7.5 на Windows Server 2008 R2) системные администраторы часто сталкиваются с бессистемным зависанием веб-сервера. Пользователи тонких или веб-клиентов теряют связь с базой, а при попытке перезапустить или остановить службу IIS в консоли управления она зависает до тех пор, пока рабочий процесс w3wp.exe не будет завершен вручную через Диспетчер задач.

Проанализируем основные причины возникновения этой проблемы и разберем по шагам действенные способы ее решения.

Причины зависания IIS и модуля wsisapi.dll

Выясним, почему возникает подобный сбой. При публикации файловой информационной базы 1С на веб-сервере IIS обработка всех серверных вызовов выполняется внутри процесса w3wp.exe с помощью библиотеки расширения 1С wsisapi.dll. К основным факторам зависания относятся:

  1. Зависание фоновых и регламентных заданий: В файловом режиме регламентные задачи исполняются в контексте сеанса веб-сервера. При сбое или повреждении индексов (например, полнотекстового поиска) процесс w3wp.exe может плотно заблокировать файлы информационной базы и уйти в бесконечное ожидание.
  2. Взаимные блокировки файлов (Deadlocks): При одновременной работе нескольких пользователей файловый режим 1С производит блокировки на уровне операционной системы. Поток wsisapi.dll зависает при ожидании освобождения файла 1Cv8.1CD.
  3. Некорректные параметры пула приложений IIS: Настройки по умолчанию (тайм-аут простоя, уход пула в спящий режим при отсутствии активности) приводят к разрыву HTTP-соединений с тонкими клиентами и зависанию потоков.
  4. Проблемы с правами доступа учетной записи пула: Использование стандартной учетной записи ApplicationPoolIdentity или IUSR при недостаточности прав на каталоги с базой 1С вызывает ошибки доступа при смене сеансовых файлов.
  5. Блокировка антивирусным ПО: Сканирование каталога базы 1С или служебных папок IIS во время активных запросов приводит к монопльному захвату файлов антивирусом.

Шаг 1. Диагностика и устранение зависших фоновых заданий

Проанализируем состояние фоновых процессов в информационной базе. Частой причиной плотного зависания w3wp.exe является сбой регламентного задания индексации полнотекстового поиска.

  1. Откроем базу 1С в режиме «Предприятие» под правами администратора и перейдем в монитор пользователей или Журнал регистрации.
  2. Проверим, нет ли зависших фоновых задач, связанных с полнотекстовым поиском.
  3. Если регламентное задание зависло и не сбрасывается штатно, полностью очистим индексы. В случае жесткого сбоя переведем базу в монопольный режим, закроем все процессы w3wp.exe и вручную удалим файлы индексов полнотекстового поиска из каталога базы данных (папка 1Cv8FTxt).
  4. После запуска базы заново запустим процедуру «Обновить индекс» в управлении полнотекстовым поиском.

Шаг 2. Оптимизация и тонкая настройка пула приложений IIS

Рассмотрев работу пула IIS, перейдем к его правильной конфигурации. Зайдем в «Диспетчер служб IIS» и выполним следующие настройки:

  1. Изолированный пул: Выделим опубликованную базу 1С в отдельный пул приложений, не используя общий DefaultAppPool.
  2. Отключение управляемого кода: В свойствах пула приложений установим параметр Версия среды .NET Framework в значение Без управляемого кода (No Managed Code), так как модуль wsisapi.dll является нативным ISAPI-расширением.
  3. Отключение тайм-аута простоя: В дополнительных параметрах пула приложений находим блок «Модель процесса» и меняем параметр Тайм-аут по отсутствию активности (минуты) (Idle Time-out) с 20 на 0. Это предотвратит завершение и уход процесса w3wp.exe в спящий режим.
  4. Удостоверение пула: В параметре Удостоверение (Identity) изменим значение со стандартного на Особая учетная запись и укажем локального администратора сервера, имеющего явные полные права на папку с файловой базой 1С.
  5. Поддержка 32-разрядных приложений: Если на 64-битной Windows Server используется 32-разрядный релиз платформы 1С:Предприятие, установим параметр Разрешены 32-разрядные приложения в True.

Шаг 3. Добавление исключений в антивирус и анализ логов Windows

Разберем дополнительные системные шаги для предотвращения внешних блокировок:

  1. Добавим в исключения антивирусного сканера каталог с файловой базой 1С (файл 1Cv8.1CD), системный каталог IIS C:\inetpub и временные папки пользователей.
  2. При повторном зависании откроем «Просмотр событий» Windows (Event Viewer) и изучим разделы Application и System. Обратим внимание на ошибки с кодами 1000 (Application Error) и 5011 (WAS), которые укажут на упавший поток библиотеки wsisapi.dll.

Альтернативные способы решения

Если после выполнения всех настроек IIS зависания файловой базы продолжаются из-за высокой активности пользователей, рассмотрим альтернативные варианты архитектуры:

← На главную