Это моя первая попытка использовать WCF, поэтому я предполагаю, что делаю что-то неправильно.
Я пытаюсь получить доступ к сервису мыла, определенному WSDL по адресу http://confluence.atlassian.com/rpc/soap-axis/confluenceservice-v1?wsdl. Я использую VS2010, и я добавляю ссылку на сервис в свой проект и указываю на нее URL-адрес (или, скорее, нашу интранет-установку это), но когда я использую Object Browser для просмотра сервиса, операции над интерфейсом - это ВСЕ пустые методы без параметров. Кажется, что WCF неправильно читает информацию о типе. Он не дает ошибок, но дает множество предупреждений, таких как:
Предупреждение 1 Предупреждение о нестандартном инструменте: ошибка
InvalidSessionException в
операция getPermissions не может быть
импортирован. Неподдерживаемый WSDL, ошибка
часть сообщения должна ссылаться на
элемент. Это сообщение об ошибке не
ссылаться на элемент. Если у вас есть редактировать
Доступ к документу WSDL вы можете
исправить проблему, ссылаясь на
элемент схемы с использованием элемента
приписывать. Z: \ TestLibrary \ Service
Ссылки \ Confluence \ Reference.svcmap 1 1 TestLibrary
Предупреждение 2 Пользовательское предупреждение инструмента:
необязательный элемент расширения WSDL 'body'
из пространства имен
«http://schemas.xmlsoap.org/wsdl/soap/'
не был обработан. XPath:
// wsdl: Definitions [@targetNamespace = 'http://confluence.atlassian.com/rpc/soap-axis/confluenceservice-v1']/wsdl:binding[@name='confluenceservice-v1SoapBinding']/wsdl:operation[@name='getPermissions']/wsdl:input[@name='getPermissionsRequest'] Z: \ TestLibrary \ Service
Ссылки \ Confluence \ Reference.svcmap 1 1 TestLibrary
Что я делаю не так? Я попытался изменить конфиг сервиса с помощью комбинации опций, но я никогда не мог правильно вытащить типы из WSDL. Я предполагал, что WCF будет автоматически генерировать классы типов вместе с интерфейсом сервиса. Я должен выяснить, какие типы используются в WSDL и сам создавать классы и контракты данных, или это что-то еще?