Dienstreferenzfehler: Fehler beim Generieren von Code für die Dienstreferenz
Ich habe einen Windows-Service-Lösung und versuche, einen Dienstverweis hinzufügen eines Hermes(Opensource ebms message-server) - Web-Service in VS2010.
Finde ich die Web-Service unter Verwendung Ihrer URL, aber wenn ich versuchen Sie, und füllen Sie die Service-Referenz, die ich bekommen den folgenden Fehler in Visual Studio:
Error 8 Custom tool error: Failed to generate code for the service reference 'testService'. Please check other error and warning messages for details. C:\Users\Admin\documents\visual studio 2010\Projects\MyProject\MyProject.MessageHandler\Service References\testService\Reference.svcmap 1 1 MyProject.MessageHandler
Warning 6 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://service.ebms.edi.cecid.hku.hk/']/wsdl:portType[@name='EbmsStatusQuery']
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://service.ebms.edi.cecid.hku.hk/']/wsdl:binding[@name='EbmsSoapHttpStatusQuery'] C:\Users\Admin\documents\visual studio 2010\Projects\MyProject\MyProject.MessageHandler\Service References\testService\Reference.svcmap 1 1 MyProject.MessageHandler
Warning 7 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://service.ebms.edi.cecid.hku.hk/']/wsdl:binding[@name='EbmsSoapHttpStatusQuery']
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://service.ebms.edi.cecid.hku.hk/']/wsdl:service[@name='EbmsMessageStatusQuery']/wsdl:port[@name='EbmsStatusQuery'] C:\Users\Admin\documents\visual studio 2010\Projects\MyProject\MyProject.MessageHandler\Service References\testService\Reference.svcmap 1 1 MyProject.MessageHandler
Warning 5 Custom tool warning: Cannot import wsdl:portType
Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.XmlSerializerMessageContractImporter
Error: Schema with target namespace 'http://service.ebms.edi.cecid.hku.hk/' could not be found.
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://service.ebms.edi.cecid.hku.hk/']/wsdl:portType[@name='EbmsStatusQuery'] C:\Users\Admin\documents\visual studio 2010\Projects\MyProject\MyProject.MessageHandler\Service References\testService\Reference.svcmap 1 1 MyProject.MessageHandler
Einigen Untersuchungen schien zu vermuten, es ist aufgrund svcutil.exe nicht in der Lage gewesen zu bauen, die proxys durch, um nicht mit Berechtigungen auf ein Verzeichnis (ggf. c:\windows\temp). Ich habe versucht, die Zuordnung verschiedener Berechtigungen ist, aber ich bin nicht wirklich sicher, welcher Benutzer benötigt die Berechtigung, oder wenn es nur ein red herring.
Irgendwelche Ideen würde sehr geschätzt werden.
Dank
InformationsquelleAutor der Frage jheppinstall | 2010-10-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben, deaktivieren Sie die Wiederverwendung von Typen in alle referenzierten Assemblys von Einstellungen für service-Referenz option
Überprüfen Sie diese details
InformationsquelleAutor der Antwort smhnkmr
Rechten Maustaste auf Ihre service-Referenz und wählen Sie
Configure Service Reference...
Dann deaktivieren Sie
Reuse types in referenced assemblies
Klicken Sie auf
OK
reinigen und neu erstellen Ihre Lösung.InformationsquelleAutor der Antwort Darren
Ich auch begegnet eine ähnliche Fehlermeldung, wenn Sie versuchen, generieren Sie den client für einen web-service aus einer ASP .Net MVC 4.0-Projekt mithilfe von Visual Studio 2012.
Die Wurzel des Problems scheint zu sein, dass die Tatsache, dass das Projekt aus, wo ich versucht hatte, Sie zu erzeugen, der client war, verweisen auf eine assembly, die wiederum abhängig war von einer anderen assembly nicht referenziert werden, wie gut.
Beim "Reuse types in referenzierten Assemblys" aktiviert ist, in der service-Konfiguration, der service generator ist wahrscheinlich der Inspektion alle referenzierten Assemblys, um eine Liste der Typen, die wiederverwendet werden können. Die Tatsache, dass einer der referenzierten Assemblys verweist, die einer anderen Baugruppe, die nicht vorhanden ist, wahrscheinlich verursacht durch den generator zu scheitern.
Deaktivieren "Wiederverwendung von Typen der referenzierten assemblies" von der service-Konfigurationen wird das obige problem zu lösenaber es ist ein Nebeneffekt. Die Wiederverwendung von Typen, die option gibt es für einen Grund und in einigen Fällen vermeidet unnötige casting im code verarbeiten des Dienstes.
Beispielsweise, wenn der Dienst selbst ist gebaut mithilfe von WCF und einige Methoden, Parameter, die im inneren sind vom Typ System.Guid, die Sie übersetzt werden, um Zeichenfolgen in der generierten client, wenn die Wiederverwendung von Typen, die option ist deaktiviert.
Eine alternative, die ich bevorzugen zum deaktivieren der Wiederverwendung von Typen ist das hinzufügen der service Referenz von Klasse-Bibliothek-Projekt, die speziell für diesen Zweck. Die eine Sache, zum im Verstand zu halten ist, kopieren Sie alle service-bezogenen Konfigurationen aus der Bibliothek-Klasse, die app.config die Konfigurationsdatei für das startup-Projekt.
Wenn es Typen in lokalen Versammlungen, die wiederverwendet werden sollen, in den service-client diese Baugruppen müssen lediglich verwiesen werden, die von der oben genannten Klasse-Bibliothek-Projekt, zusammen mit allen Ihren Abhängigkeiten.
InformationsquelleAutor der Antwort Florin Dumitrescu
http://uliasz.com/2011/06/wcf-custom-tool-error-failed-to-generate-code-for-the-service-reference/#comment-1647
Dank dem Artikel oben.
In meinem Fall, ich habe dieses Problem mit meinem WPF-Projekt in VS.Net 2008. Nachdem Sie durch diesen Artikel, ich war die Tatsache, dass die assembly in der web service ist unterschiedliche version der Baugruppe verwendet werden auf dem client.
Läuft es einwandfrei nach der Aktualisierung der Montage auf dem client.
InformationsquelleAutor der Antwort user2144589
Wäre es äußerst schwer zu erraten das problem, da es aufgrund eines Fehlers in der WSDL-und ohne Prüfung der WSDL, die ich nicht kommentieren kann viel mehr. Also, wenn Sie können teilen Sie Ihre WSDL, so tun Sie dies bitte.
Alles was ich sagen kann ist, dass es scheint eine fehlende schema in der WSDL (mit dem Zielnamespace 'http://service.ebms.edi.cecid.hku.hk/'). Ich weiß, über die Themen und unterschiedlichen Umgang mit dem schema, wenn include-Anweisungen werden ignoriert.
Generell habe ich festgestellt, dass Microsoft die Implementierung von web-services ziemlich gut, so dass ich denke, dass der web service sendet wieder dodgy WSDL.
InformationsquelleAutor der Antwort Aliostad
Bekomme ich den gleichen Fehler in Silverlight 5 (VS2012)
Können Sie auch entfernen Sie die Verweise auf:
Nachdem Sie aktualisiert haben, die service Referenzen werden Sie sicher, dass Sie Sie wieder in.
InformationsquelleAutor der Antwort CartoJunkie
Wie oben erwähnt, gibt es ein paar verschiedene Probleme möglich. Was wir fanden, ist, dass die .DLL für die WCF-Bibliothek als Referenz Hinzugefügt, um die client-Projekt. Dies wiederum erzeugt Probleme mit Auflösung der Objekte und verursacht damit die Dateien werden "entleert", indem Sie code-Generierung Schritte. Während der VBP die Nutzung "Wiederverwendung von Typen..." scheint wie eine Antwort, es schafft zusätzliche Definitionen von Objekttypen, die sind proxies, um die echte Typen, den neuen Namen im Raum, die dann bewirkt, dass alle Arten von "Verträglichkeit" Probleme mit der Verwendung dieser Arten. Nur, wenn Sie wirklich wollen, zu "verstecken" eine Art sollten Sie diese option aktivieren.
Ausblenden der Art wäre angebracht, wenn Sie nicht wollen, eine "DLL" - Typ-Abhängigkeit zu "Leck" in ein Projekt, das Sie versuchen zu halten, getrennt von den anderen. Wenn die DLL für die WCF-library-Projekt kriecht in das client-Projekt-Referenzen, dann haben Sie dieses problem mit allen Arten von seltsamen Nebenwirkungen, da die Typ-Definitionen sind ebenfalls in der DLL.
InformationsquelleAutor der Antwort Grwon
Gesicht gleiche Problem, gelöst durch ausführen von Visual Studio im Admin-Modus
InformationsquelleAutor der Antwort Prashant
Habe ich auf dieses problem, wenn Upgrade ein VS2010 WCF+Silverlight-Lösung in VS2015 Professionelle. Neben dem automatischen Upgrade von Silverlight 4 auf Silverlight 5, die service Referenz Wiederverwendung checkbox Wert geändert wurde und-Generierung ist fehlgeschlagen.
InformationsquelleAutor der Antwort Alexei
"Reuse types" ist nicht immer das problem, wenn dieser Fehler Auftritt.
Wenn Sie eine Referenz hinzufügen, um einen älteren Dienst, klicken Sie auf "erweitert" und dort "Add Web Reference". Jetzt link zu deiner wsdl und alles sollte funktionieren.
InformationsquelleAutor der Antwort FrankyHollywood
Hatte ich dieses problem beim aktualisieren meiner service-Referenz (Der Fehler wird nur beim hinzufügen der service Referenz), aber er wollte nicht, entfernen Sie die Baugruppe wiederverwenden aktivieren.
Was für mich gearbeitet war der folgende:
Voila, jetzt ist es tatsächlich updates und nicht versuchen, Sie zu entfernen, alle meine generierten code nicht mehr.
War ich fast bereit zu geben, auf der re-Typen verwendet werden, die Funktion...
InformationsquelleAutor der Antwort Shahin Dohan
Wenn Sie dies korrigieren wollen, ohne uncheking die Montage Wiederverwendung checkbox-das ist was für mich gearbeitet:
InformationsquelleAutor der Antwort popiandro