|
Ошибка при вызове конструктора (COMОбъект)... MSSOAP.SoapClient30 | ☑ | ||
---|---|---|---|---|
0
Артур Хвостов
09.06.17
✎
14:52
|
Добрый день. Нужна помощь в решении одной ошибки... Заранее всем спасибо кто подскажет;)
Предыстория: Делал интеграцию с веб сервисом через MSSOAP.SoapClient30. Все работает хорошо на своем лок. компе, но когда обновил рабочею БД, на терминальном сервере начались нюансы... У нас схема такая... есть терминальный сервер с win server 2008 r2 x64 и есть сервер основной win server 2012 x64, на котором крутиться sql server и 1c сервер. На терминальный сервер и основой сервер поставил вот такую программу mssoap_toolkit_30. Когда с терминального сервера в 1с пытаюсь получить данные с веб сервиса лезет такая ошибка: {ОбщийМодуль.МодульРегламентныхЗаданий.Модуль(277)}: Ошибка при вызове конструктора (COMОбъект) Клиент = Новый COMОбъект("MSSOAP.SoapClient30"); по причине: -2146959355(0x80080005): Ошибка при выполнении приложения-сервера До этого на терминальном сервер сделал: 1. Со своего лок. компа скопировал папку C:\Program Files (x86)\Common Files\MSSoap\Binaries\ с ddl файлами в C:\Program Files (x86)\Common Files 2. Добавил компонент SoapClient30 в службы компонентов(ddl взял из первого пункта) 3. перегестрировал библиотеку C:\Program Files (x86)\Common Files\Binaries\MSSOAP30.dll через system32/cmd и SysWOW64/cmd Больше не знаю в какую сторону идти... |
|||
1
Cyberhawk
09.06.17
✎
14:53
|
Зачем тебе для "интеграции с веб-сервисом" какие-то СОМ-объекты?
Неправильно ты что-то делал... |
|||
2
Артур Хвостов
09.06.17
✎
15:00
|
Есть такой веб сервис мерлион он работает через soap...
Тогда подскажи как правильно? |
|||
3
mehfk
09.06.17
✎
15:14
|
(2) У тебя там 1С 7.7 что-ли?
|
|||
4
Cyberhawk
09.06.17
✎
15:29
|
(2) А какая разница, какой веб-сервис? WS-прокси проинициализировал и вызываешь операции
|
|||
5
Артур Хвостов
09.06.17
✎
15:30
|
(3) нет, ут 10.3
|
|||
6
Неверный Параметр И
09.06.17
✎
15:46
|
(4) Это же мерлион. Известный тем, что отдает wsdl с массивами, который wsпрокси не понимает.
|
|||
7
Артур Хвостов
09.06.17
✎
15:58
|
Может я как-то неправильно компоненты установил?
|
|||
8
Сергиус
09.06.17
✎
16:00
|
(0)А если использовать "WinHttp.WinHttpRequest.5.1" для этих целей?
|
|||
9
Артур Хвостов
09.06.17
✎
16:06
|
(8) Может, не пробовал...
Но я использую вот такое... Клиент = Клиент = Новый COMОбъект("MSSOAP.SoapClient30"); Если (ПустаяСтрока(ПространствоИмен)) Тогда Клиент.MSSoapInit(АдресВСДЛ, ИмяСервиса, ИмяПорта); Иначе Клиент.MSSoapInit2(АдресВСДЛ, "", ИмяСервиса, ИмяПорта, ПространствоИмен); КонецЕсли; УстановитьСвойстваКлиента(Клиент, СвойстваСоединения, СвойстваКлиента); ...... Процедура УстановитьСвойстваКлиента(Клиент, СтрСвойстваСоединения=Неопределено, СтрСвойстваКлиента=Неопределено) Экспорт Перем Оболочка, Элемент; Оболочка = Новый COMОбъект("MSScriptControl.ScriptControl"); Оболочка.Language = "vbscript"; Оболочка.AddCode(" |Sub SETConnectorProperty(Client, PropertyName, PropertyValue) | | Client.ConnectorProperty(PropertyName) = PropertyValue | |End Sub | |Sub SETClientProperty(Client, PropertyName, PropertyValue) | | Client.ClientProperty(PropertyName) = PropertyValue | |End Sub |"); Если (ТипЗнч(СтрСвойстваСоединения) = Тип("Структура")) Тогда Для Каждого Элемент Из СтрСвойстваСоединения Цикл Оболочка.Run("SETConnectorProperty", Клиент, Элемент.Ключ, Элемент.Значение); КонецЦикла; КонецЕсли; Если (ТипЗнч(СтрСвойстваКлиента) = Тип("Структура")) Тогда Для Каждого Элемент Из СтрСвойстваКлиента Цикл Оболочка.Run("SETClientProperty", Клиент, Элемент.Ключ, Элемент.Значение); КонецЦикла; КонецЕсли; КонецПроцедуры |
|||
10
Сергиус
09.06.17
✎
16:44
|
(9)Возможно прав не хватает. Попробуйте запустить 1с с правами админа.
|
|||
11
Артур Хвостов
14.06.17
✎
09:59
|
Тема закрыта, всем спасибо, вот какое решение:
1. поставил на основной сервер mssoap_toolkit_30 2. на терминальном сервере вот такое как написано в статье "Запуск компоненты soapsdk (SoapClient30) на х64 ОС" в гугл забиваете, делаете по инструкции 3. Переразгрузка терминального сервера |
|||
12
Лефмихалыч
14.06.17
✎
10:30
|
(0) в платформе же есть свои HTTPСоединение и HTTPЗапрос. Зачем эти прокладки?
|
|||
13
Артур Хвостов
14.06.17
✎
14:10
|
(12) Если я все правильно разобрался, поправьте, если ошибаюсь, то сервер мерлиона не умеет работать с json и ему нужно эту компоненту soap. А HTTPСоединение и HTTPЗапрос это для json...
|
|||
14
Неверный Параметр И
14.06.17
✎
14:13
|
(13) HTTPСоединение и HTTPЗапрос это для запросов по хттп протоколу. По которому можно передавать в том числе и json и xml и даже (не поверишь) двоичные данные.
|
|||
15
Артур Хвостов
14.06.17
✎
14:22
|
(14) Ок, буду иметь ввиду
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |