COM соединение из Web сервиса! #445022


#0 by AliasVector
Приветсвую участников форума! Обыскал весь интернет, перечитал все 1с литературу - решения проблемы не нашел. Последняя надежда, что кто-то делал такое. Есть закрытая конфигурация на платформе 1cv8.1 (8.1.14.72). Мы не можем ее править. Но нам необходим web сервис для работы, причем не только на чтение, но и на запись. Так как необходимо записывать, то делать это надо средствами 1С, поэтому было решено написать свою конфигурацию с нуля, содержащую только web сервисы! Из функций который обращаться к основной закрытой конфигурации посредством COM соединения. Написали web сервис, объекты XDTO, отладили код в тестовых обработках. Все работает в режиме предприятия: создается COMObject, получаются данные, трансформируются в объекты XDTO... Но не тут то было. Опубликовали web сервисы на Apache 2.2 сервере, под 32 разрядной виндой XP. Веб сервис видится, wsdl рабочий. При попытке вызвать функцию Web сервиса получаем следующие исключения: Неизвестная ошибка. {ОбщийМодуль.ОбщийМодуль}: Ошибка при вызове конструктора (COMObject): Не был произведен вызов CoInitialize. по причине: {ОбщийМодуль.ОбщийМодуль}: Ошибка при вызове конструктора (COMObject): Не был произведен вызов CoInitialize. по причине: Не был произведен вызов CoInitialize. по причине: Не был произведен вызов CoInitialize. Причем такое сообщение выдается как под клиентом Webсервиса написанного на Java, так и в тестовой дополнительной конфигурацией 1С, содержащей только WS ссылку, для тестирования этого Web Сервиса. Создается впечатление, чо из Web сервисов нельзя работать с COM объектами. Действительно ли это так? И можно ли как то решить данную проблему? Ну, скажем вручную вызвать ф-цию WinAPI CoInitialize и ф-цию CoUnintialize? С уважением AliasVector.
#1 by detec
Столкнулся с этой же проблемой под Apache 2.2, x32. Только в рамках 8.2 на файловой базе, которая исполняется в процессе веб-сервера - не создаются COM-объекты, хоть ты застрелись. (( Похоже, что это приколы фришного софта.
#2 by milan
под иис тоже не работает ???
#3 by Asmody
под каким пользователем работает apache? у этого пользователя права на создание и доступ к com-объектам есть?
#4 by hakz
подпишуська я на эту тему
#5 by detec
Под IIS - не знаю, не пробовал. Апач работает под LocalSystem, что с точки зрения безопасности весьма нехорошо. ИМХО, но я бы очень не рекомендовал поднимать файловые базы через веб. Всё-таки сервер 1С Предприятие - это родное приложение, в отличие от веб-сервера, сиполняющего код 1С.
#6 by StreamLV
Что-то в релизе 8.2.10.73 не исправили эту ошибку. Хотя интересный факт, когда подключаюсь из тонкого клиента(через веб), который запущен на Ubuntu 9.10 под wine - то все ок, COM объект создается. Просто загадка.
#7 by Asmody
и про права никто не ответил...
#8 by StreamLV
Apache работает с системной учетной записью, сейчас запустил сервис от имени Администратора - результат такой же. Не думаю, что в этом дело(хотя права у пользователя на запуск и создание com-объектов должны быть), тогда почему под ubuntu все нормально...
#9 by AliasVector
Проблема решена. Дело оказалось в том, что конфигурация с web службами была файловой. Как только перевелии ее на сервер приложений, то все заработало. (Веб сервер IIS).
#10 by StreamLV
Почему тогда нигде не написано, что в веб-клиенте на файловой базе невозможно работать с com объектами?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С