我在本地驱动器上使用WSDL和XSD添加服务引用。我过去曾多次这样做过,生成的客户端类派生自System.ServiceModel.ClientBase。出于某种原因,我得到的唯一客户端类派生自System.ServiceModel.DuplexClientBase。
我尝试取消选中"允许生成异步操作"但我仍然只得到一个派生自DuplexClientBase的客户端类。
如何才能获得正常的"客户端来自ClientBase?
我刚刚尝试了其他一个WSDL,它生成了#34; normal"非双工客户端。 WSDL中是否指定了仅强制双工客户端的内容?
答案 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>