2017-07-27 2 views
0

Ich füge eine Service-Referenz mit einer WSDL und XSDs auf einem lokalen Laufwerk hinzu. Ich habe das in der Vergangenheit schon oft gemacht und die erzeugte Clientklasse stammt von System.ServiceModel.ClientBase. Aus irgendeinem Grund wird die einzige Clientklasse, die ich erhalte, von System.ServiceModel.DuplexClientBase abgeleitet.Warum ist VS 2015 Service-Referenz hinzufügen? Nur einen Duplex-Client generieren?

Ich habe versucht, die Option "Erlaube Generierung von asynchronen Operationen", aber ich bekomme immer noch nur eine Client-Klasse von DuplexClientBase abgeleitet.

Wie kann ein "normaler" Client von ClientBase abgeleitet werden?

Ich habe gerade eine der anderen WSDLs erneut versucht und es wurde der "normale" Nicht-Duplex-Client generiert. Gibt es in der WSDL eine Angabe, die nur einen Duplex-Client erzwingt?

Antwort

0

Die WSDL definierte einen von mehreren Vorgängen nur mit einem Ausgabeelement. Wenn ich diesen Vorgang entfernte und den Proxy erneut generierte, erstellte er wie erwartet einen Nicht-Duplex-Client. Zum Glück brauchen wir die Operation "blahNbrChg" nicht.

<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>