.net – 不同的WSDL ASMX,WCF Web服务
发布时间:2020-12-14 19:32:56 所属栏目:资源 来源:网络整理
导读:我有asmx web-service,它可以从其他客户端(.NET,Delphi)成功使用. 我尝试来到wcf,并在WCF服务中编写相同的逻辑(basicHttpBinding用于互操作性). (.net客户端消耗正常,但delphi 7无法调用此服务). 我开始研究两种服务(asmx,wcf)之间的差异并检测它们的wsdl是
我有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. 谢谢. 解决方法
您必须展平WSDL.请查看
http://geekswithblogs.net/EltonStoneman/archive/2008/07/30/flattening-wsdl-from-wcf-services.aspx和
http://wcfextras.codeplex.com/以获取信息.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |