2017-07-27 58 views
0

我在本地驅動器上使用WSDL和XSD添加服務引用。過去我做了很多次,生成的客戶端類從System.ServiceModel.ClientBase派生。出於某種原因,我得到的唯一客戶端類是從System.ServiceModel.DuplexClientBase派生的。爲什麼VS 2015僅添加服務參考生成雙工客戶端?

我試過取消選中「允許生成異步操作」,但我仍然只獲得一個從DuplexClientBase派生的客戶端類。

如何獲得從ClientBase派生的「正常」客戶端?

我剛剛嘗試了其他WSDL之一,它生成了「正常」的非雙工客戶端。 WSDL中是否只強制使用雙工客戶端?

回答

0

WSDL定義了一個只有一個輸出元素的操作。當我刪除此操作並重新生成代理時,它按預期創建了一個非雙工客戶端。幸運的是,我們不需要「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>