Ich habe den ganzen Tag mit SvcUtil gerungen und versucht, nützlichen Code für einige IMS Enterprise Services (hauptsächlich den Group Management Service) zu generieren, aber es gibt andere, für die wir auch arbeiten müssen.) Sie finden den IMS-Service WSDL ist hier http://www.imsglobal.org/es/index.html.Alternative zu SvcUtil.exe?
Ich bin zu der Schlussfolgerung gekommen, dass SvcUtil ein nutzloser nachträglicher Einfall von Microsoft ist, der die WSDL- und XSD-Standards nicht einmal halbwegs unterstützt. Es ist nicht in Lage, einen WCF-Dienst zu generieren, der den Standard-WSDL-Verträgen entspricht, die IMS UND-Funktionen gleichzeitig verwendet. Obwohl generierbarer Code aus der folgenden WSDL (http://www.imsglobal.org/services/gms/wsdl/imsGroupManServiceSync_v1p0.wsdl) generiert wird, zeigt die Beobachtung der generierten WSDL aus dem WCF-Dienst (? Wsdl,? Wsdl = wsdl0,? Xsd = xsd0 usw.), dass keine der Operationen existiert und nur ein Bruchteil von Die Typen, die im Code generiert wurden, werden von WCF tatsächlich erkannt. Wenn wir uns mit dem generierten Code herumschlagen, können wir etwas dieser Art von Funktionen bekommen (wir benutzen SoapUI zum Testen), aber dann entspricht es nicht mehr dem Vertrag, also ist es für die Leute nutzlos, die wirklich diese Dienste aufrufen müssen.
Gibt es Alternativen zu SvcUtil? (Bitte schlagen Sie nicht das eingebaute "Add Service Reference" -Tool von Visual Studio vor, das genauso nutzlos ist wie es den gleichen Code wie SvcUtil verwendet.) Wir brauchen etwas, das uns einen gewissen Grad an Kontrolle über den Code gibt Aus dem WSDL-Vertrag wird generiert, in welche Dateien die einzelnen Teile gelangen, in welchen Namespaces jedes Codeelement endet usw. Der IMS-Vertrag importiert sowohl XSD-Typen, die für die in der WSDL definierten Dienste spezifisch sind, als auch XSD-Typen, die häufig vorkommen an alle IMS-Dienste. Wir müssen in der Lage sein, verschiedene Assemblies für diese Typen zu generieren und sie im generierten Code zu referenzieren (ähnlich wie SvcUtil es anscheinend tun soll ... aber es scheint nicht zu tun, was es in seiner Dokumentation sagt überhaupt.)
Ich war bis jetzt ein großer Fan von WCF. Es funktioniert natürlich, wenn Sie nur .NET/WCF-Dienste verwenden, aber jedes Mal, wenn Sie versuchen, es in einer standardkonformen, plattformübergreifenden Umgebung zu verwenden, geht alles schief.
"Jedes Mal, wenn Sie versuchen, es in einer standardkonformen, plattformübergreifenden Umgebung zu verwenden, geht alles kaputt" .... das sollte wirklich nicht überraschen .... – skaffman
@skaffman: Außer das war angeblich der ganze Punkt der von WCF gelobten neuen und verbesserten WSDL-, SOAP-, XSD- und WS-* -Standards. – jrista
Um ein Dienstverhalten zu erstellen, das Ihre WSDL-Generation "anpasst", ist dies eine Option? Sie können ein Beispiel hier sehen: http://www.codeproject.com/KB/WCF/ExportAnnotationFromWCF.aspx –