In einem Blog-Eintrag von Christian Weyer wird wunderbar beschrieben (und im Code-Sample gezeigt), wie man die <import>-Definitionen der von WCF automatisch generierten WSDL-Datei auflösen kann und alle notwendigen Service-Beschreibungen in einem einzigen WSDL-Dokument unterbringen kann.
Das bringt vor Allem Vorteile bei der Interoperabilität, denn "einfache" SOAP-Clients wie bei PHP oder Flex sind im Allgemeinen nicht in der Lage, den
Der von Weyer beschriebene Ansatz ist einfach umzusetzen und funktioniert blendend. Ich möchte dazu allerdings ein paar Kleinigkeiten ergänzen, die leider meiner Meinung nach nicht ganz deutlich hervorgehoben wurden:
- Das "flattening" der WSDL-Definitionen funktioniert nur bei einem konfigurierten Endpoint (Ein üblicher Metadata-Exchange-Endpoint entfällt, weil es sowieso programmatisch hinzugefügt wird)
- Der "bindingNamespace" des Endpoints muss demselben Namespace entsprechen wie der, der im
ServiceBehaviorAttributeundServiceContractAttributeangegeben ist.