При полном переходе сервера и клиентских приложений 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С полностью переведена на x64 и 32-разрядный релиз удален, веб-сервер Apache также должен быть 64-разрядным (x64).
При установке 64-разрядной платформы 1С необходимо убедиться, что в состав дистрибутива включен нужный компонент integration-модуля.
C:\Program Files\1cv8\<версия>\bin\ появится соответствующий 64-битный файл модуля (wsap22.dll для Apache 2.2 или wsap24.dll для Apache 2.4).В некоторых случаях автоматическая публикация из графического интерфейса Конфигуратора может некорректно перезаписывать директивы в конфигурационных файлах. Для надежного результата разберем публикацию через утилиту командной строки 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.
Посмотрим на пример настройки главного файла конфигурации 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-платформе.