Почему этот файл WSDL создает пустой сервисный прокси в VS2008?
Если вы посмотрите на созданный файл Reference.cs, он будет пустым. Любые идеи?
Почему этот файл WSDL создает пустой сервисный прокси в VS2008?
Если вы посмотрите на созданный файл Reference.cs, он будет пустым. Любые идеи?
Вы читали свой список ошибок? Я получил следующее:
Custom tool warning: There was a validation error on a schema generated during export:
Source:
Line: 144 Column: 12
Validation Error: Wildcard '##any' allows element 'http://search.yahoo.com/mrss:text', and causes the content model to become ambiguous. A content model must be formed such that during validation of an element information item sequence, the particle contained directly, indirectly or implicitly therein with which to attempt to validate each item in the sequence in turn can be uniquely determined without examining the content or attributes of that item, and without any information about the items in the remainder of the sequence.
Custom tool warning: Cannot import wsdl:portType
Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.XmlSerializerMessageContractImporter
Error: Cannot import invalid schemas. Compilation on the XmlSchemaSet failed.
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://fliqz.com/services/search/20071001']/wsdl:portType[@name='IVideoSearchService']
Custom tool warning: Cannot import wsdl:binding
Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on.
XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='http://fliqz.com/services/search/20071001']/wsdl:portType[@name='IVideoSearchService']
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='basicHttpBinding_IVideoSearchService_20071001']
Custom tool warning: Cannot import wsdl:port
Detail: There was an error importing a wsdl:binding that the wsdl:port is dependent on.
XPath to wsdl:binding: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='basicHttpBinding_IVideoSearchService_20071001']
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:service[@name='VideoSearchService']/wsdl:port[@name='basicHttpBinding_IVideoSearchService_20071001']
Custom tool error: Failed to generate code for the service reference 'ServiceReference1'. Please check other error and warning messages for details.
Редактировать: я немного покопался и наткнулся на следующие ссылки:
Я попытался следовать инструкциям Скотта Андерсона в первой ссылке, но не смог создать с их помощью клиентский прокси. Возможно, вам повезет больше.
Похоже, причина, что это не работает, заключается в том, что Fliqz использует XmlSerializer, а не DataContract/MessageContract для своих определений контрактов, а WCF не хочет с ними хорошо работать и генерирует неподходящий WSDL. Если бы вы могли контролировать первоначальный контракт, вы, вероятно, могли бы решить проблему и продолжить работу; к сожалению, вам может совсем не повезти.
Если вы сможете получить интерфейс ServiceContract и предоставляемые им типы, возможно, вы сможете сгенерировать собственный клиент вручную. Судя по некоторым именам классов, которые я там вижу, похоже, что Fliqz раскрывает внутренние объекты в своем контракте, поэтому я сомневаюсь, что вы могли бы, знаете ли, позвонить им и попросить у них .dll, на который вы можете сослаться.
Вы можете попробовать написать интерфейс и типы контрактов данных/сообщений самостоятельно, проанализировав WSDL и XSD. Хотя, похоже, работы будет много.
Извините, я не могу больше помочь. Похоже, это сочетание плохой устаревшей поддержки WCF и плохой архитектуры/дизайна со стороны Fliqz.
щелкните правой кнопкой мыши ссылку на службу, cofigure, снимите флажок «Повторно использовать типы в сборках, на которые ссылаются», и нажмите «ОК». Попробуйте обновить ссылку на сервис. Это сработало для меня!
Попробуйте добавить его в качестве веб-справочника по .NET 2.0.
Перейдите в раздел «Добавить ссылку на службу», затем нажмите кнопку «Дополнительно». Затем вам предоставляется возможность добавить его в качестве веб-справочника .NET 2.0. Я сделал это и заставил его работать. Я не мог через стандартный "Добавить ссылку на службу"
Я не вижу никаких элементов ‹wsdl:portType› в вашем WSDL — проблема может быть в этом.
Кроме того, вы создаете свою службу из активного URL-адреса или некоторых файлов на диске? Если вы используете файлы «на диске»: вы также получили файл «wsdl0», как указано в этой строке здесь:
<wsdl:import namespace="http://fliqz.com/services/search/20071001" location="http://services.fliqz.com/LegacyServices/Services/search/R20071001/service.svc?wsdl=wsdl0"/>
Марк