为什么VS 2015添加服务参考仅生成双工客户端?

时间:2017-07-27 20:22:58

标签: wcf service-reference

我在本地驱动器上使用WSDL和XSD添加服务引用。我过去曾多次这样做过,生成的客户端类派生自System.ServiceModel.ClientBase。出于某种原因,我得到的唯一客户端类派生自System.ServiceModel.DuplexClientBase。

我尝试取消选中"允许生成异步操作"但我仍然只得到一个派生自DuplexClientBase的客户端类。

如何才能获得正常的"客户端来自ClientBase?

我刚刚尝试了其他一个WSDL,它生成了#34; normal"非双工客户端。 WSDL中是否指定了仅强制双工客户端的内容?

1 个答案:

答案 0 :(得分: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>