Как устранить ошибки IsapiModule и 500 Internal Server Error при публикации 1С:Предприятие x64 на IIS?

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

Публикация информационных баз 1С на веб-сервере Internet Information Services (IIS) (в качестве альтернативы можно рассмотреть установщик Apache HTTP Server) — это стандартная задача для обеспечения доступа через браузер или тонкий клиент. Однако при использовании 64-битной версии платформы (выбирая между IIS, Apache или Go) системные администраторы часто сталкиваются с критическими ошибками. Самые распространенные из них: «Обработчик "1C Web-service Extension" содержит поврежденный модуль "IsapiModule"» и классическая «500 Internal Server Error». В этой статье мы подробно разберем, как правильно подготовить сервер, какие компоненты Windows необходимо включить и как настроить права доступа, чтобы публикация работала стабильно.

Шаг 1. Анализируем состав компонентов IIS

Первая и самая частая причина ошибки IsapiModule — отсутствие установленных расширений ISAPI в самой операционной системе. По умолчанию при установке роли веб-сервера IIS эти компоненты могут быть отключены. Давайте разберем, что именно нужно активировать.

Нам необходимо зайти в «Диспетчер серверов» (Server Manager), выбрать «Добавление ролей и компонентов» и в дереве выбора ролей веб-сервера (IIS) найти раздел «Разработка приложений» (Application Development). Проверим наличие галочек на следующих пунктах:

  1. Расширения ISAPI (ISAPI Extensions) — критически важный компонент для работы wsapimod64.dll.
  2. Фильтры ISAPI (ISAPI Filters) — необходимы для правильной обработки запросов к модулям 1С.
  3. ASP.NET (рекомендуется устанавливать версии 4.5 или выше) — хотя 1С напрямую не использует ASP, общая инфраструктура обработки часто требует наличия этих библиотек для корректной работы пулов.

Если графический интерфейс недоступен или вы предпочитаете автоматизацию, мы можем воспользоваться командой PowerShell для принудительной активации нужных функций:


Enable-WindowsOptionalFeature -Online -FeatureName IIS-ISAPIExtensions, IIS-ISAPIFilter, IIS-NetFxExtensibility45, IIS-ASPNET45

Шаг 2. Настройка пула приложений для x64-разрядности

Когда мы работаем с 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) может помочь стабилизировать работу, как это обсуждалось в технической переписке специалистов.

Шаг 3. Устранение ошибки 500 через права доступа

Если после установки компонентов ошибка IsapiModule исчезла, но появилась «500 Internal Server Error», это явный признак проблем с правами доступа. Давайте выясним причину: веб-сервер запускается от имени системного пользователя пула приложений, и у этого пользователя просто нет прав «дотянуться» до исполняемых файлов 1С, что делает невозможным тестирование REST API.

Проанализируем ситуацию с правами на файловой системе:

  1. Найдем папку установки 1С (обычно это C:\Program Files\1cv8\).
  2. В свойствах папки на вкладке «Безопасность» нам нужно добавить группу пользователей «IIS_IUSRS».
  3. Установим для этой группы права «Чтение и выполнение» (Read & Execute), «Список содержимого папки» и «Чтение». Это позволит IIS обращаться к библиотеке wsapimod64.dll.

Не забудем и про папку самой публикации, где лежат файлы default.vrd и web.config. Пользователь, от которого работает пул (например, IIS AppPool\DefaultAppPool), должен иметь полные права на чтение и запись в этом каталоге, чтобы корректно обрабатывать сессии и настройки.

Шаг 4. Регистрация ограничений ISAPI на уровне сервера

Даже если компоненты установлены, выполнение конкретных DLL-файлов может быть запрещено политикой безопасности IIS. Рассмотрим, как это проверить. Перейдем на корневой уровень настроек сервера в консоли IIS и найдем раздел «Ограничения ISAPI и CGI» (ISAPI and CGI Restrictions).

Здесь мы должны увидеть путь к нашей библиотеке wsapimod64.dll, которая находится в папке bin соответствующей версии платформы. Убедимся, что статус стоит «Разрешено» (Allowed). Если записи нет, её необходимо добавить вручную, указав полный путь:

C:\Program Files\1cv8\8.3.XX.XXXX\bin\wsapimod64.dll

Обязательно установите галочку «Разрешить выполнение расширения».

Шаг 5. Повторная публикация и очистка конфигурации

Иногда настройки «залипают» в файле web.config, особенно если до этого вы пробовали публиковать 32-битную версию или меняли пути. Разберем алгоритм «чистой» публикации:

  1. Зайдем в конфигуратор 1С от имени администратора.
  2. Откроем окно «Администрирование» — «Публикация на веб-сервере».
  3. Нажмем кнопку «Удалить публикацию».
  4. Физически перейдем в каталог на диске, где лежала публикация, и убедимся, что он пуст (удалим default.vrd и web.config вручную, если они остались).
  5. Вернемся в конфигуратор и создадим публикацию заново, внимательно проверив имя базы (лучше использовать латиницу без пробелов) и путь к каталогу.

В файле default.vrd после публикации стоит обратить внимание на строку подключения. Она должна выглядеть примерно так:



Обратите внимание на атрибут modules: для 64-разрядной версии там всегда должен быть указан wsapimod64.dll.

Резюме

Для успешной работы 1С x64 на IIS мы должны обеспечить три условия: наличие установленных компонентов ISAPI в Windows, правильную разрядность пула приложений (запрет 32-бит) и достаточные права доступа для группы IIS_IUSRS к исполняемым файлам платформы. Соблюдение этих шагов позволяет избежать большинства проблем при развертывании веб-сервисов и HTTP-сервисов на платформе 1С:Предприятие.

← На главную