不同的 WSDL ASMX、WCF Web 服务
我有 asmx Web 服务,它已被其他客户端(.NET、Delphi)成功使用。
我尝试来到wcf,并在WCF服务中编写相同的逻辑(用于互操作性的basicHttpBinding)。 (.net客户端消费正常,但delphi 7无法调用此服务)。
我开始研究两个服务(asmx,wcf)之间的差异,并发现它们的wsdl不同:
WSDL asmx:
<s:element name="Test">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="a" type="s:int"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TestResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TestResult" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
wcf的wsdl相当不同:
<wsdl:operation name="Test"> <soap:operation soapAction="http://tempuri.org/ISyncer/Test" style="document"/>
<wsdl:input> <soap:body use="literal"/> </wsdl:input>
<wsdl:output> <soap:body use="literal"/> </wsdl:output>
<wsdl:fault name="ServiceFaultExceptionFault"> <soap:fault name="ServiceFaultExceptionFault" use="literal"/> </wsdl:fault> </wsdl:operation>
我认为这是delphi无法生成正确代理的原因。
我可以配置 wcf 来生成与 asmx 相同的 wsdl 吗?
谢谢。
I've got asmx web-service, which is succefully consumed from other clients(.NET,Delphi).
I try come to wcf, and write the same logic at WCF service(basicHttpBinding for interopability). (.net client consume ok, but delphi 7 couldn't call this service).
I start research differences between two services(asmx,wcf) and detect that their wsdl are diffrent:
WSDL asmx:
<s:element name="Test">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="a" type="s:int"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TestResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TestResult" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
wsdl of wcf is rather different:
<wsdl:operation name="Test"> <soap:operation soapAction="http://tempuri.org/ISyncer/Test" style="document"/>
<wsdl:input> <soap:body use="literal"/> </wsdl:input>
<wsdl:output> <soap:body use="literal"/> </wsdl:output>
<wsdl:fault name="ServiceFaultExceptionFault"> <soap:fault name="ServiceFaultExceptionFault" use="literal"/> </wsdl:fault> </wsdl:operation>
I think it's a reson why delphi can't generate correct proxy.
Can i config wcf to generate wsdl the same as asmx.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须展平 WSDL。看看 http://geekswithblogs.net /EltonStoneman/archive/2008/07/30/flattening-wsdl-from-wcf-services.aspx 和 http ://wcfextras.codeplex.com/ 了解信息。
You must flatten the WSDL . look at http://geekswithblogs.net/EltonStoneman/archive/2008/07/30/flattening-wsdl-from-wcf-services.aspx and http://wcfextras.codeplex.com/ for information.