Различные веб-службы WSDL ASMX, WCF

у меня есть веб-сервис asmx, который успешно потребляется от других клиентов (.NET, Delphi).

Я пытаюсь прийти в wcf и написать ту же логику в службе WCF(basicHttpBinding для совместимости). (Клиент .net потребляет ok, но 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>

WSDL wcf скорее разные:

<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 для генерации wsdl так же, как asmx.

спасибо.

1 ответов


вы должны сгладить WSDL . посмотрите на http://geekswithblogs.net/EltonStoneman/archive/2008/07/30/flattening-wsdl-from-wcf-services.aspx и http://wcfextras.codeplex.com/ для информации.