2017-07-27 2 views
0

J'ajoute une référence de service en utilisant un WSDL et des XSD sur un disque local. Je l'ai fait plusieurs fois dans le passé et la classe client générée provient de System.ServiceModel.ClientBase. Pour une raison quelconque, la seule classe de client que je reçois est dérivée de System.ServiceModel.DuplexClientBase.Pourquoi la référence de service d'ajout VS 2015 ne génère-t-elle qu'un client Duplex?

J'ai essayé de décocher "Autoriser la génération d'opérations asynchrones" mais je n'ai toujours qu'une classe client dérivée de DuplexClientBase.

Comment obtenir un client "normal" dérivé de ClientBase?

Je viens d'essayer à nouveau l'un des autres WSDL et il a généré le client non-duplex "normal". Y a-t-il quelque chose de spécifié dans le WSDL qui force uniquement un client duplex?

Répondre

0

Le WSDL a défini une opération parmi plusieurs avec un élément de sortie uniquement. Lorsque j'ai supprimé cette opération et recréé le proxy, il a créé un client non-duplex comme prévu. Heureusement, nous n'avons pas besoin de l'opération "blahNbrChg".

<wsdl:portType name="BlahPortType"> 
<wsdl:operation name="blahNbrChg"> 
    <wsdl:output message="tns:blahNbrChgSoapOut"/> 
    <wsdl:fault name="fault" message="tns:soapFault"/> 
</wsdl:operation> 
<wsdl:operation name="xxxControl"> 
    <wsdl:input message="tns:xxxControlSoapIn"/> 
    <wsdl:output message="tns:xxxControlSoapOut"/> 
    <wsdl:fault name="fault" message="tns:soapFault"/> 
</wsdl:operation>