c # — вызов wcf мыльного сервиса из php с несколькими параметрами (не как массив)

Всем добрый день,
Интересно, есть ли способ вызвать функцию сервиса wcf мыла с несколькими параметрами из клиента php?

Я знаю, что вы можете встроить параметры в массив, а затем вызвать функцию. Но, к сожалению, мне нужно написать сервис, который будет совместим с существующими клиентами php. И те вызывают функции с отдельными параметрами.
Поэтому мне нужно отвечать на запросы, как это:

 $soapClient = new SoapClient('http://myService?wsdl', $options);
$param1 = 1;
$param2 = 2;
$soapClient->doGoodThingsInTheNameOfTheMoon($param1, $param2);

но служба wcf, которую я написал, может ответить только на

$soapClient = new SoapClient('http://myService?wsdl', $options);
$soapClient->doGoodThingsInTheNameOfTheMoon(array("param1"=>1,"param2"=> 2));

Мой сервис выглядит следующим образом:

[ServiceContract]
public interface ImyserviceBinding
{

[OperationContract]
bool doGoodThingsInTheNameOfTheMoon(Param param1, Param param2);
}

с [DataContract] а также [DataMember] атрибуты, установленные типами данных

Так что мне нужно понизить версию до определенной версии wcf? Или указать какое-либо поведение в файле * .config?

web.config:

<configuration>
<appSettings/>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
<httpRuntime/>
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceTypeBehaviors">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>

<services>
<service behaviorConfiguration="MyServiceTypeBehaviors" name="myService.myService">
<endpoint address="" binding="basicHttpBinding"contract="ImyserviceBinding" >
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

<host>
<baseAddresses>
<add baseAddress="http://localhost:60000/myService.svc" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<!--
To browse web app root directory during debugging, set the value below to true.
Set to false before deployment to avoid disclosing web app folder information.
-->
<directoryBrowse enabled="false"/>
</system.webServer>
</configuration>

Спасибо за любой совет!

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]