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