不同的WSDL ASMX,WCF web

我有asmx web服务,它从其他客户端(.NET,Delphi)成功地使用。

我试着来到wcf,并在WCF服务(basicHttpBinding for interopability)上编写相同的逻辑。 (.net客户端消耗正常,但德尔福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>

我认为这是一个为什么德尔福不能生成正确的代理。

我可以配置wcf生成与asmx相同的wsdl。

谢谢。


您必须将WSDL扁平化。 请参阅http://geekswithblogs.net/EltonStoneman/archive/2008/07/30/flattening-wsdl-from-wcf-services.aspx和http://wcfextras.codeplex.com/以获取信息。

链接地址: http://www.djcxy.com/p/71291.html

上一篇: Different WSDL ASMX,WCF web

下一篇: WCF Service instead of ASMX Web Service?