Имя: Пароль:
1C
 
Внешняя компонента и Web-сервис
0 lvi15
 
04.03.09
18:43
Создал внешнюю компоненту на Vb.Net (как здесь изложено) и встраиваю в нее ссылку на Web-сервис. При построении dll идет длинное
предупреждение:
Предупреждение    2    Предупреждение программы экспорта библиотек типов при обработке "Conn1c.wsConnect.wsConnectSoapClient, Conn1c".  Предупреждение: Программа экспорта библиотек типов обнаружила тип, производный от базового класса и не помеченный как [ClassInterface(ClassInterfaceType.None)]. Интерфейсы классов не могут быть предоставлены для таких типов. Возможно, следует пометить этот тип как [ClassInterface(ClassInterfaceType.None)] и предоставить явный интерфейс для COM как интерфейс по умолчанию  с помощью атрибута ComDefaultInterface

А затем при попытке обратиться к Web-службе из запущенной ВК идет такое сообщение:
Не удалось найти стандартный элемент конечной точки, ссылающийся на контракт "wsConnect.wsConnectSoap" в разделе конфигурации клиента ServiceModel. Это может быть вызвано тем, что для приложения не найден файл конфигурации или в элементе клиента не найден элемент конечной точки, соответствующий данному контракту
То есть вся байда в каких-то интерфейсах ну и как и где их переопределять???
1 ТелепатБот
 
гуру
04.03.09
18:43
2 lvi15
 
04.03.09
18:59
или хотя бы в каком направлении копать? То есть надо как то переопределять или доопределять эти интерфейсы а как это делать??
3 lvi15
 
05.03.09
08:56
~
4 lvi15
 
05.03.09
11:54
~
5 lvi15
 
10.03.09
16:37
~
6 lvi15
 
12.03.09
17:33
Увы, здесь так и не разобрался.
Прицепил ВК сделанную под VB.Net r 1c.
К ВК прицепил/добавил web-службу
В ВК обращаюсь к самому примитивному web-сервису (типа HelloWorld)
....
Sub CallAsFunс...
'Здесь внешняя компонента выполняет код функций.
 Try
 pvarRetValue = 0 'Возвращаемое значение метода для 1С
 Select Case lMethodNum 'Порядковый номер метода
  Case Methods.methGetListOrganization
     Dim wsSl As wsConnect.wsConnectSoapClient
     wsSl = New wsConnect.wsConnectSoapClient()...
и здесь идет вышеприв.сообщение
И что-только не делал - просто из любой сборки Net все идет на "ура"
а здесь хоть тресни. Cделал еще одну внешнюю dll и перенес обращение туда,
думал обману, ага, как же - все то же самое ну и т.д. Такое ощущение что
1с накладывает какие-то дополнительные ограничения в ВК именно на web-сервисы.
Причем просто обратиться к БД работает без проблем...
7 Torquader
 
12.03.09
17:41
Возможно, что 1С использует встроенный Web-сервис, который каким-то образом конфликтует с добавленным в обработку, и получается две ссылки на один и тот же объект.
Другая причина может быть в том, что при добавлении Web-сервиса в проект добавляются файлы заголовков и описаний, ну и происходит простое совпадение имён.
Также надо понимать, что при изменении компоненты нужно её перерегистрировать в реестре.
8 lvi15
 
13.03.09
18:00
Все - разобрался, радовался как свое дите которому чуть меньше 2...
Для того чтобы ВК "собранная" в Net работала с веб сервисом, он ОБЯЗАТЕЛЬНО
должен подключаться к сборке как <веб-ссылка>, а не как <ссылка на службу> иначе пипец. А грабля в том, что пункт меню <Добавить ссылку на веб-службу> может быть закрыт, но, как уже ясно, - это совсем другая история...