微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.net – 不同的WSDL ASMX,WCF Web服务

我有asmx web-service,它可以从其他客户端(.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.

谢谢.

解决方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐