Что делать, если после обновления 1С с 32-bit на 64-bit и удаления x32 перестали работать Web-сервисы на Apache?

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

При полном переходе сервера и клиентских приложений 1С с 32-разрядной на 64-разрядную версию специалисты часто сталкиваются со сбоем работы опубликованных Web-сервисов. В браузере при попытке открыть ссылку WSDL вместо структуры сервиса выводится ошибка вида Unrecognized error, а повторная публикация базы из Конфигуратора и перезапуск службы веб-сервера Apache не дают результата.

Рассмотрим подробно причины возникновения этой проблемы и разберем по шагам порядок действий для восстановления штатной работы Web-сервисов на 64-разрядной платформе.

Выясним причину проблемы: несоответствие разрядности компонентов

Главное правило работы веб-сервисов 1С заключается в жестком соответствии разрядности компонентов. Битность подключаемого модуля расширения веб-сервера 1С (библиотеки wsap22.dll или wsap24.dll) должна строго совпадать с разрядностью самого веб-сервера Apache.

Если на сервере ранее был установлен 32-разрядный Apache (Win32), он не сможет загрузить 64-разрядную библиотеку модуля расширения 1С из каталога C:\Program Files\1cv8\.... При попытке опубликовать Web-сервисы из 64-разрядного Конфигуратора прописывается путь к x64-модулю, который 32-битный Apache обработать не способен.

Шаг 1. Установка 64-разрядной версии веб-сервера Apache

Проанализируем ситуацию: если платформа 1С полностью переведена на x64 и 32-разрядный релиз удален, веб-сервер Apache также должен быть 64-разрядным (x64).

  1. Остановим текущую службу веб-сервера Apache.
  2. Загрузим и установим 64-разрядную версию Apache для Windows (например, дистрибутив Apache 2.2 или 2.4 x64).
  3. Убедимся, что на сервере установлены необходимые системные библиотеки Microsoft Visual C++ Redistributable x64, требуемые для сборки 64-разрядного Apache и модулей 1С.

Шаг 2. Проверка наличия компонента «Модуль расширения веб-сервера»

При установке 64-разрядной платформы 1С необходимо убедиться, что в состав дистрибутива включен нужный компонент integration-модуля.

  1. Запустим инсталлятор 64-разрядной платформы 1С в режиме Изменить.
  2. В дереве компонентов проверим наличие отметки напротив пункта Модуль расширения веб-сервера (WS).
  3. Завершим установку. После этого в каталоге C:\Program Files\1cv8\<версия>\bin\ появится соответствующий 64-битный файл модуля (wsap22.dll для Apache 2.2 или wsap24.dll для Apache 2.4).

Шаг 3. Публикация Web-сервисов через утилиту webinst

В некоторых случаях автоматическая публикация из графического интерфейса Конфигуратора может некорректно перезаписывать директивы в конфигурационных файлах. Для надежного результата разберем публикацию через утилиту командной строки webinst из состава 64-битной платформы.

Выполним команду в командной строке, запущенной от имени администратора:


"C:\Program Files\1cv8\8.3.23.1865\bin\webinst.exe" -publish -apache24 -wsdir "MyBase" -dir "C:\inetpub\wwwroot\MyBase" -connstr "Srvr=ServerName;Ref=BaseName;" -confpath "C:\Program Files\Apache Group\Apache2.4\conf\httpd.conf"

В данном примере параметр -apache24 указывает на версию веб-сервера, -wsdir определяет имя виртуального каталога, -dir указывает физический путь к папке публикации, а -confpath задает путь к основному конфигурационному файлу Apache.

Шаг 4. Ручная проверка файла конфигурации httpd.conf

Посмотрим на пример настройки главного файла конфигурации Apache httpd.conf. Проверим, что директива загрузки модуля 1С указывает на правильный 64-разрядный каталог Program Files (без `x86`):

LoadModule _1cws_module "C:/Program Files/1cv8/8.3.23.1865/bin/wsap24.dll"

После внесения и сохранения изменений перезапустим службу Apache. После выполнения всех шагов сбой Unrecognized error устранен, а WSDL-ссылки и Web-сервисы 1С работают корректно на x64-платформе.

← На главную