Публикация информационных баз 1С на веб-сервере Internet Information Services (IIS) (в качестве альтернативы можно рассмотреть установщик Apache HTTP Server) — это стандартная задача для обеспечения доступа через браузер или тонкий клиент. Однако при использовании 64-битной версии платформы (выбирая между IIS, Apache или Go) системные администраторы часто сталкиваются с критическими ошибками. Самые распространенные из них: «Обработчик "1C Web-service Extension" содержит поврежденный модуль "IsapiModule"» и классическая «500 Internal Server Error». В этой статье мы подробно разберем, как правильно подготовить сервер, какие компоненты Windows необходимо включить и как настроить права доступа, чтобы публикация работала стабильно.
Первая и самая частая причина ошибки IsapiModule — отсутствие установленных расширений ISAPI в самой операционной системе. По умолчанию при установке роли веб-сервера IIS эти компоненты могут быть отключены. Давайте разберем, что именно нужно активировать.
Нам необходимо зайти в «Диспетчер серверов» (Server Manager), выбрать «Добавление ролей и компонентов» и в дереве выбора ролей веб-сервера (IIS) найти раздел «Разработка приложений» (Application Development). Проверим наличие галочек на следующих пунктах:
wsapimod64.dll.Если графический интерфейс недоступен или вы предпочитаете автоматизацию, мы можем воспользоваться командой PowerShell для принудительной активации нужных функций:
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ISAPIExtensions, IIS-ISAPIFilter, IIS-NetFxExtensibility45, IIS-ASPNET45
Когда мы работаем с 64-битным сервером 1С, крайне важно следить за тем, чтобы IIS не пытался запустить его в режиме совместимости с 32 битами. Проанализируем настройки Пула приложений (Application Pool), который используется вашей публикацией (по умолчанию это DefaultAppPool).
Откроем «Дополнительные параметры» (Advanced Settings) выбранного пула приложений и обратим внимание на параметр «Разрешить 32-разрядные приложения» (Enable 32-Bit Applications). Для 64-битной версии 1С этот параметр обязан быть установлен в значение False (Ложь). Если там стоит True, IIS попытается найти 32-битные библиотеки, не обнаружит их в папке bin 64-битной платформы и выдаст ошибку о поврежденном модуле.
Также стоит рассмотреть режим управляемого конвейера. В современных версиях 1С 8.3 рекомендуется использовать режим «Встроенный» (Integrated). Однако в редких случаях, при возникновении конфликтов со сторонними модулями, переключение в режим «Классический» (Classic) может помочь стабилизировать работу, как это обсуждалось в технической переписке специалистов.
Если после установки компонентов ошибка IsapiModule исчезла, но появилась «500 Internal Server Error», это явный признак проблем с правами доступа. Давайте выясним причину: веб-сервер запускается от имени системного пользователя пула приложений, и у этого пользователя просто нет прав «дотянуться» до исполняемых файлов 1С, что делает невозможным тестирование REST API.
Проанализируем ситуацию с правами на файловой системе:
C:\Program Files\1cv8\).wsapimod64.dll.Не забудем и про папку самой публикации, где лежат файлы default.vrd и web.config. Пользователь, от которого работает пул (например, IIS AppPool\DefaultAppPool), должен иметь полные права на чтение и запись в этом каталоге, чтобы корректно обрабатывать сессии и настройки.
Даже если компоненты установлены, выполнение конкретных DLL-файлов может быть запрещено политикой безопасности IIS. Рассмотрим, как это проверить. Перейдем на корневой уровень настроек сервера в консоли IIS и найдем раздел «Ограничения ISAPI и CGI» (ISAPI and CGI Restrictions).
Здесь мы должны увидеть путь к нашей библиотеке wsapimod64.dll, которая находится в папке bin соответствующей версии платформы. Убедимся, что статус стоит «Разрешено» (Allowed). Если записи нет, её необходимо добавить вручную, указав полный путь:
C:\Program Files\1cv8\8.3.XX.XXXX\bin\wsapimod64.dll
Обязательно установите галочку «Разрешить выполнение расширения».
Иногда настройки «залипают» в файле web.config, особенно если до этого вы пробовали публиковать 32-битную версию или меняли пути. Разберем алгоритм «чистой» публикации:
default.vrd и web.config вручную, если они остались).В файле default.vrd после публикации стоит обратить внимание на строку подключения. Она должна выглядеть примерно так:
Обратите внимание на атрибут modules: для 64-разрядной версии там всегда должен быть указан wsapimod64.dll.
Для успешной работы 1С x64 на IIS мы должны обеспечить три условия: наличие установленных компонентов ISAPI в Windows, правильную разрядность пула приложений (запрет 32-бит) и достаточные права доступа для группы IIS_IUSRS к исполняемым файлам платформы. Соблюдение этих шагов позволяет избежать большинства проблем при развертывании веб-сервисов и HTTP-сервисов на платформе 1С:Предприятие.