При публикации информационной базы 1С на веб-сервере Internet Information Services (IIS) специалисты часто сталкиваются с неприятной ошибкой: «Handler "1C Web-service Extension" has a bad module "IsapiModule" in its module list». Эта проблема блокирует доступ к базе через браузер или тонкий клиент, делая работу невозможной. Давайте подробно разберем, почему возникает эта ситуация, и проанализируем пошаговые алгоритмы её решения.
Для начала выясним причину. Ошибка прямо указывает на то, что обработчик 1C Web-service Extension, который создается в настройках IIS при публикации базы из Конфигуратора, ссылается на модуль IsapiModule. Однако сам веб-сервер IIS об этом модуле ничего не знает, так как он не установлен или не активирован в глобальных настройках сервера. Модули ISAPI (Internet Server Application Programming Interface) являются критически важными для работы 1С, так как именно через них происходит взаимодействие между веб-сервером и библиотекой расширения 1С wsisapi.dll.
Рассмотрим основной способ решения, который заключается в правильной настройке ролей и компонентов операционной системы Windows. Часто при быстрой установке IIS администраторы забывают отметить пункты, отвечающие за разработку приложений.
Выполним следующие шаги:
После установки компонентов крайне важно перезапустить веб-сервер. Для этого можно воспользоваться командой в командной строке, запущенной от имени администратора:
iisreset /restart
Как мы видим из обсуждения на форуме, иногда попытка переустановить модули 1С упирается в ошибку установки .NET Framework 3.5. В современных версиях Windows файлы для этой версии фреймворка часто отсутствуют в локальном кэше обновлений. Проанализируем ситуацию, когда стандартная установка через интерфейс Windows завершается неудачей.
Рассмотрим наиболее эффективный метод установки с использованием утилиты DISM. Для этого нам понадобится дистрибутив Windows (ISO-образ или загрузочная флешка), версия которой совпадает с установленной системой.
D:).
dism /online /enable-feature /featurename:NetFX3 /all /Source:D:\sources\sxs /LimitAccess
Разберем параметры этой команды: /online означает работу с текущей ОС, /featurename:NetFX3 указывает на .NET 3.5, а /Source задает путь к папке с компонентами на диске. Параметр /LimitAccess запрещает системе обращаться к серверам Windows Update, если они заблокированы политиками организации.
Проанализируем еще одну тонкость. Если вы используете 32-битную версию платформы 1С (например, для совместимости со старыми драйверами или внешними компонентами) на 64-битной операционной системе, IIS по умолчанию не сможет запустить 32-битный модуль wsisapi.dll.
Чтобы исправить это, выполним настройку пула:
Выясним причину, по которой модуль может быть «плохим» (bad) даже при наличии всех установленных компонентов. Это часто связано с тем, что рабочий процесс IIS не имеет прав на чтение файлов в папке bin установленной платформы 1С.
Посмотрим на алгоритм настройки прав:
C:\Program Files\1cv8\8.3.XX.XXXX\bin).bin, вкладка «Безопасность».IUSR или IIS_IUSRS. Также рекомендуется добавить учетную запись IIS AppPool\ИмяВашегоПула.После того как мы исправили конфигурацию Windows и IIS, рекомендуется выполнить «чистую» публикацию. Рассмотрим правильный порядок действий:
C:\inetpub\wwwroot\MyBase) удален файл web.config.В результате этих действий файл web.config будет пересоздан с правильными ссылками на установленные в системе модули. Внутри этого файла за логику обработки запросов отвечает секция handlers. Пример того, как должна выглядеть запись (упрощенно):
<handlers>
<add name="1C Web-service Extension"
path="*"
verb="*"
modules="IsapiModule"
scriptProcessor="C:\Program Files\1cv8\8.3.22.1709\bin\wsisapi.dll"
resourceType="Unspecified" />
</handlers>
Если после всех манипуляций ошибка сохраняется, проверьте системный журнал событий Windows (Event Viewer). В разделе «Журналы Windows» — «Приложение» можно найти уточняющие детали о том, какой именно DLL-файл не удалось загрузить и по какой причине.
Подведем итог: системный подход к установке ролей IIS, внимательное отношение к разрядности платформы и использование инструментов командной строки типа DISM позволяют полностью устранить проблему с IsapiModule и обеспечить стабильную работу веб-сервисов 1С.