Я создал службу .NET WCF, которая должна всегда работать по протоколу HTTPS. Когда я впервые создал каркас службы и запустил его по HTTP, он работал нормально. Я использовал PHP5 для проверки совместимости со встроенными функциями SOAP. Однако после переключения на HTTPS, когда я пытаюсь вызвать функцию из PHP, я получаю сообщение об ошибке с сообщением «Метод не разрешен» и кодом ошибки «http». Это позволяет мне получить список методов, хотя. Ошибка возникает при вызове метода «Тест».
Вот конфигурация WCF:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="secureBasic">
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="apiBehavior" name="TestAPI.API">
<endpoint address="https://192.168.0.3/API"
binding="basicHttpBinding"
bindingConfiguration="secureBasic"
contract="TestAPI.IAPI"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="apiBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
А вот как PHP это называет:
<code>$client = new SoapClient("https://192.168.0.3/API.svc?wsdl");
echo "<pre>" . print_r($client->__getFunctions(), 1) . "
";
$ param = new stdClass ();
$ param-> A = "123";
$ param-> B = "456";
пытаться {
$ Client-> Test ($ пары);
} catch (исключение $ e) {
умирают ( "
" . print_r($e,1) . "
");
}
Я использую самозаверяющий сертификат SSL для тестирования и не верю, что PHP требует доверенный сертификат.
Что я делаю не так?