2009-04-16 2 views

Antwort

3

Haben Sie Ihre Fehlerliste lesen? Ich habe die folgenden:

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. 

Edit: ich einige graben tat, und ich kam in den folgenden Links:

ich folgende versucht, die Anweisungen von ScottAnderson in der ersten Verbindung, konnte jedoch keinen Client-Proxy mit ihnen generieren. Vielleicht kannst du mehr Glück haben.

Es erscheint der Grund dies nicht der Fall funktioniert, weil Fliqz verwendet, ist XmlSerializer statt Datacontract/Message für seine Vertragsdefinitionen und WCF will nicht schön, mit ihnen spielen und unangemessenen WSDL erzeugt. Wenn Sie den ursprünglichen Vertrag kontrollieren könnten, könnten Sie das Problem möglicherweise beheben und auf Ihrem Weg sein; Leider haben Sie möglicherweise kein Glück.

Wenn Sie die ServiceContract-Schnittstelle und die verfügbaren Typen abrufen können, können Sie möglicherweise Ihren eigenen Client manuell generieren. Nach einigen der Klassennamen, die ich dort sehe, scheint es, dass Fliqz interne Objekte in ihrem Vertrag aufdeckt, also bezweifle ich, dass Sie sie anrufen und nach einer .dll-Datei fragen könnten, auf die Sie sich beziehen können.

Sie könnten versuchen, die Schnittstellen- und Daten-/Nachrichtenvertragsarten selbst auszugeben, indem Sie die WSDL und XSDs analysieren. Sieht aber so aus, als wäre es viel Arbeit.

Sorry ich kann nicht mehr helfen. Dies scheint eine Kombination aus schlechter WCF-Legacy-Unterstützung und schlechter Architektur/Design seitens Fliqz zu sein.

+0

diese Fehler zu sehen, und bewaffnet mit dem Wissen, dass dies nicht meine WSDL-Datei ist, was schlagen Sie vor? – TheSoftwareJedi

+0

Es ist nicht deine WSDL? Hmm ... das ist schwierig. Sie könnten versuchen, durch die WSDL und XSDs zu gehen, um Ihre Service-Schnittstelle und DTO-Objekte von Hand zu erstellen und den Client dann manuell zu konfigurieren, aber das macht wenig Sinn. Haben Sie in VS 2005 mit .NET 3.0 eine Service-Referenz ausprobiert? Das kann ich leider nicht selbst testen ... – Randolpho

2

Versuchen Sie, es als .NET 2.0 Web Reference hinzuzufügen.

Gehen Sie zu Service-Referenz hinzufügen und klicken Sie dann auf die Schaltfläche "Erweitert". Dann haben Sie die Option, es als .NET 2.0 Web Reference hinzuzufügen. Ich habe das getan und es zur Arbeit gebracht. Ich konnte nicht über den Standard "Add Service Reference"

1

Ich sehe keine < WSDL: PortType > Elemente in Ihrer WSDL - das könnte das Problem sein.

Erstellen Sie Ihren Dienst auch über eine Live-URL oder einige Dateien auf der Festplatte? Wenn Sie mit „auf der Festplatte“ -Dateien: hast du auch die „wsdl0“ Datei wie hier in dieser Zeile verwiesen:

<wsdl:import namespace="http://fliqz.com/services/search/20071001" location="http://services.fliqz.com/LegacyServices/Services/search/R20071001/service.svc?wsdl=wsdl0"/>

Marc

+0

es ist nicht mein Service ... es ist fliqz.com's – TheSoftwareJedi

+0

Ja, ich verstehe - aber haben Sie Ihren Client-Proxy von der URL erstellt oder haben Sie die WSDL lokal auf die Festplatte heruntergeladen und erstellen Sie Ihren Proxy von dort? Wenn Sie heruntergeladen haben - müssen Sie auch die separaten, zusätzlichen Teile für die WSDL herunterladen (der? Wsdl = wsdl0 Teil und möglicherweise mehr) –

+0

erstellt von der URL. Sie haben eine andere WSDL, die gut funktioniert. – TheSoftwareJedi

9

Klicken Sie mit der rechten Maustaste auf Service-Referenz, klicken Sie auf "Cofigure", deaktivieren Sie die Option "Typen in referenzierten Assemblys wiederverwenden" und klicken Sie auf "OK". Versuchen Sie, die Servicereferenz zu aktualisieren. Das hat für mich funktioniert!

+0

Danke, ich war stundenlang dran – Daveo

+0

Danke, ich vergesse immer wieder dieses Kästchen. – Halvard

Verwandte Themen