WSDL-first approach: Comment spécifier différents noms pour wsdl: port et wsdl: binding?
Je suis WSDL-première (fourni par le client) approche pour le développement de service WCF mais fichiers wsdl généré à partir de mon service wcf est légèrement différente de WSDL qui m'a été fourni par notre client et à cause de cette disparité, le client est confronté à des difficultés pour faire un appel à mon service.
Client fourni wsdl:
<wsdl:service name='CheckoutService'>
<wsdl:port binding='tns:CheckoutBinding' name='CheckoutServicePort'>
<soap:address location='place holder to service uri' />
</wsdl:port>
</wsdl:service>
Fichier WSDL du service wcf:
<wsdl:service name="CheckoutService">
<wsdl:port binding="tns:CheckoutBinding" name="CheckoutBinging">
<soap:address location="place holder to service uri" />
</wsdl:port>
</wsdl:service>
et, mes paramètres de service sont comme suit:
<endpoint name="CheckoutBinding" address="" binding="basicHttpBinding" bindingName="CheckoutServicePort" bindingConfiguration="basicHttpBinding" bindingNamespace="<<namespace>>" contract="<<contractname>>" />
J'ai utilisé de la FUACE.Bleu pour générer server stub code de la client fourni wsdl et a apporté des changements mineurs dans le code généré à émettre WSDL exactement le même que celui fourni par le client, mais je ne reçois aucune idée au sujet de ce changement à faire dans le fichier de configuration ou dans le code généré pour obtenir le même "wsdl:port/@name" comme dans le client fourni fichier wsdl.
Que par ce urlserviceendpoint nom de la propriété est mappé à wsdl:port/@name et wsdl:binding/@name. Sur cette base, le point de terminaison/@nom de la valeur de l'attribut dans mon fichier de config est mappé à wsdl:port/@name et wsdl:binding/@name mais je veux des noms différents pour être mappé à wsdl:port/@name et wsdl:binding/@name les attributs.
De bien vouloir m'aider dans la réalisation de ce.
source d'informationauteur Niranjan
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer de mettre en œuvre IWsdlExportExtension et dans ExportEndpoint modifier wsdl:port/@name. Puis de mettre en œuvre IEndpointBehavior qui va ajouter une extension à un point de terminaison. Pour utiliser votre nouveau comportement, vous avez deux choix:
Ici est simple exemple avec l'extension de l'élément:
Et de configuration:
Mon WSDL ressemble alors à: