Как исправить ошибку HTTP 500.0 (0x800700c1) при публикации 1С 8.3 на IIS?

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

При переходе информационной базы с платформы 1С:Предприятие 8.2 на 8.3 системные администраторы часто сталкиваются с ситуацией, когда ранее работавший веб-доступ через IIS 8.5 прекращает функционировать. При попытке подключения в браузере отображается сообщение «Ошибка HTTP 500.0 - Internal Server Error» с системным кодом 0x800700c1 (кодовое обозначение ERROR_BAD_EXE_FORMAT — «Не является приложением Win32»).

Разберем подробно причины возникновения этой проблемы и проанализируем последовательность действий для восстановления работоспособности веб-клиента.

Причины возникновения ошибки 0x800700c1

Код ошибки 0x800700c1 указывает на то, что веб-сервер IIS попытался загрузить Dynamic Link Library (DLL), разрядность которой не соответствует параметрам пула приложений, либо к которой у процесса нет доступа. В контексте перехода на 1С 8.3 выделим основные факторы:

  1. Несоответствие разрядности: Пул приложений IIS настроен на работу с 32-разрядными библиотеками, а в web.config указана 64-битная библиотека wsisapi.dll (или наоборот).
  2. Недостаточность прав доступа: Для учетной записи или группы пользователей IIS не предоставлены права на новую папку платформы 8.3 или на рабочие каталоги веб-сервера.
  3. Конфликт версий в одном пуле приложений: На веб-сервере опубликовано несколько баз с разной разрядностью или версиями платформы, выполняющихся в одном пуле IIS.
  4. Блокировка в глобальных ограничениях ISAPI и CGI: Новая версия библиотеки wsisapi.dll не добавлена в список разрешенных расширений на уровне всего сервера IIS.

Шаг 1. Проверяем разрядность библиотеки и настройки пула приложений IIS

Рассмотрим порядок настройки разрядности. Начиная с версии 8.3, 1С имеет полноценные 64-разрядные модули расширения веб-сервера. Крайне важно соблюдать строгое соответствие между используемой библиотекой wsisapi.dll и настройкой пула приложений (Application Pool):

  1. Откроем Диспетчер служб IIS.
  2. Перейдем в раздел Пулы приложений и выберем пул, на котором работает публикация вашей базы.
  3. Откроем Дополнительные параметры выбранного пула.
  4. Найдем параметр Разрешены 32-разрядные приложения (Enable 32-Bit Applications):
    • Если в web.config указан путь к 64-битному модулю wsisapi.dll (находится в директории C:\Program Files\1cv8\...), этот параметр должен быть строго выставлен в False.
    • Если используется 32-битная платформа 1С (библиотека из C:\Program Files (x86)\1cv8\...), значение параметра должно быть True.

Шаг 2. Разделяем версии платформы по разным пулам приложений

Если на сервере одновременно работают базы на разных версиях платформы (например, 8.2 и 8.3) или разной разрядности, проанализируем организацию пулов. Нельзя выполнять публикации разных версий платформы в рамках одного пула приложений IIS.

  1. В Диспетчере служб IIS создадим отдельный пул приложений (например, AppPool_1C_83).
  2. Настроим разрядность нового пула под используемую версионность 1С 8.3.
  3. Переведем новую публикацию 1С 8.3 на созданный пул приложений в меню Управление приложением -> Дополнительные параметры -> Пул приложений.

Шаг 3. Настраиваем права доступа к папке платформы и inetpub

Выясним причину связанных с правами сбоев. При установке нового релиза 8.3 создается новая папка платформы, на которую у веб-сервера по умолчанию могут отсутствовать права на чтение и выполнение.

  1. Перейдем в проводнике Windows к каталогу установленной платформы (например, C:\Program Files\1cv8\8.3.9.XXXX\bin).
  2. Откроем Свойства папки, перейдем на вкладку Безопасность и нажмем Изменить.
  3. Добавим в список группу пользователей IIS_IUSRS (и при необходимости локальную учетную запись IUSR).
  4. Предоставим этой группе права Чтение и выполнение, Список содержимого папки, Чтение.
  5. Проверим также права на рабочую папку веб-сервера (по умолчанию C:\inetpub\wwwroot или конкретную папку публикации базы). Пользователям IIS необходим доступ на чтение и запись в папку публикации, так как IIS при выполнении операции публикации переписывает файл web.config.

Шаг 4. Проверяем Ограничения ISAPI и CGI на уровне сервера

Изменение настроек в web.config затрагивает только конкретную публикацию, но IIS блокирует неразрешенные исполняемые модули на глобальном уровне.

  1. В Диспетчере служб IIS выберем самый верхний узел — сам сервер IIS.
  2. В центральном окне найдем и откроем раздел Ограничения ISAPI и CGI (ISAPI and CGI Restrictions).
  3. Убедимся, что путь к wsisapi.dll новой версии 8.3 присутствует в списке и для него выставлено разрешение Разрешено (Allowed).
  4. Если записи для новой платформы нет, добавим ее вручную, указав точный путь к wsisapi.dll версии 8.3 и понятное описание (например, 1C 8.3 x64 Web Extension).

Шаг 5. Дополнительные компоненты и перезапуск IIS

Проанализируем сопутствующие технические требования, которые могут вызывать ошибку 0x800700c1:

  1. Установка распространяемых пакетов Microsoft Visual C++ Redistributable: Модуль wsisapi.dll платформы 1С 8.3 зависит от сторонних библиотек C++. Убедитесь, что на сервере установлены компоненты Microsoft Visual C++ Redistributable соответствующей разрядности (x86 или x64).
  2. Проверка установки компонентов 1С: Перезапустите дистрибутив 1С 8.3 в режиме «Изменить» и убедитесь, что в списке компонентов отмечен пункт Модули расширения веб-сервера.
  3. Перезапуск службы IIS: После корректировки конфигурационных файлов, прав доступа и правил ISAPI обязательно выполните полный перезапуск веб-сервера. Для этого откройте командную строку от имени администратора и выполните команду: iisreset /restart

После последовательного выполнения описанных шагов ошибка HTTP 500.0 (0x800700c1) устраняется, и веб-клиент 1С 8.3 начнет штатно принимать подключения пользователей.

← На главную