2017-07-27 14 views
0

ローカルドライブ上のWSDLとXSDを使用してサービス参照を追加しようとしています。私は過去にこれを何度もやっており、生成されたクライアントクラスはSystem.ServiceModel.ClientBaseから派生しています。何らかの理由で、私が得る唯一のクライアントクラスはSystem.ServiceModel.DuplexClientBaseから派生しています。VS 2015がサービス参照を追加するのはなぜですかデュプレックスクライアントの生成のみですか?

「非同期操作の生成を許可する」チェックボックスをオフにしましたが、DuplexClientBaseから派生したクライアントクラスは1つしか取得できません。

ClientBaseから派生した「通常の」クライアントを取得するにはどうすればよいですか?

もう1つのWSDLをもう一度試してみましたが、これは「通常の」非両面クライアントを生成しました。デュプレックスクライアントのみを強制するWSDLに何かが指定されていますか?

答えて

0

WSDLは、複数の操作のうち1つを出力要素のみで定義しました。この操作を削除してプロキシを再生成すると、期待どおりに非両面クライアントが作成されました。幸いにも、私たちは "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> 
関連する問題