31.05.2024, 10:41 | #1 |
Участник
|
Запуск вебсервиса на стороне сервера
Всем доброго дня!
Не нашла решения на форуме, поэтому создам отдельную тему. Может, кто-то такое уже решал, подскажите и мне, пожалуйста! Итак, у нас АХ 2009. Появилась необходимость пользоваться вебсервисами для взаимодействия с другими системами, но возникли проблемы при выполнении кода на стороне сервера. Подробнее: Веб-сервис наш, рукописный, 1С-овский. Использую его через dll-обертку, сделанную по принципу, описанному здесь: Вызов SOAP сервиса из DAX2009 без использования references - есть ли примеры в стандартном приложении Пока работаем с вебсервисом из кода, выполняемого на клиенте - всё ок, вопросов нет. Но этот код в дальнейшем нужно будет выполнять в пакете, т.е. на стороне сервера. И вот из кода, выполняемого на сервере, уже при инициализации класса, описанного в dll, получаю ошибку "Объект "CLRObject" не может быть создан". - Strong name для библиотеки сделано - В bin на сервере скопировано - В gac на сервере зарегано (хотя, это уже лишнее - после предыдущего пункта сервер и так видит библиотеку, но не работает что с gac-ом, что без...) - Permission'ы в коде прописаны Для проверки на вшивость сделала простейшую тестовую dll (с той же версией .net, те же копирования в bin и т.д.), которая не лезет в вебсервисы, а делает что-то примитивное, типа возвращения стоки "Hello world" Отлично работает и на клиенте, и на сервере! Но как только прописываю в ней же обращение к вебсервису - всё, на сервере работать перестаёт Памагити P.S. Подобная же проблема возникала и раньше, при попытке использования стороннего вебсервиса - но тогда не было возможности разобраться, поэтому на тот момент просто забили и не стали использовать вебсервис вообще. Сейчас возможности забить уже нет Т.е. принципиально .net-библиотеки у нас на сервере работают, но обращение к вебсервисам, что своим, что чужим, - не работает... Последний раз редактировалось A'Lis'A; 31.05.2024 в 10:51. |
|
31.05.2024, 11:56 | #2 |
Участник
|
вы же как-то обрабатываете там исключения ?
попробуйте добавить чт-то типа такого X++: catch(Exception::CLRError) { throw error(AifUtil::getClrErrorMessage()); } Скорее всего у вас на сервере что-то не зарегистрировано как на клиенте или не та версия сборки (net2.0 или net3.5) - обратите также внимание на версию. |
|
31.05.2024, 17:57 | #3 |
Участник
|
Добрый вечер.
Bin и GAC взаимоисключают друг друга. Скорее всего забыли связанные библиотеки сложить по соседству - перепроверьте зависимости. Возможно эта тема поможет решить проблему: При компиляции не видит подключённых dll через references Вы в сторону ссылок на сервис автогенерируемых Аксаптой не смотрели? Оно, вроде, априори на сервере развёртывается. Последний раз редактировалось Товарищ ♂uatr; 31.05.2024 в 18:09. |
|