Вызов веб-службы WCF в PHP через wsHttpBinding - PullRequest
4 голосов
/ 19 декабря 2009

У меня есть веб-сервис WCF, я могу подключиться к нему через basicHttp, но не через wsHttp. Я пытаюсь подключиться к нему через wshttp через следующее:

$service = new SoapClient
("http://service.companyname.local:6666/Service/?wsdl",
 array(
         "location" => "http://service.companyname.local:6666/Service/WCF",

    "trace" => true,
    'soap_version' => SOAP_1_2
     )
);

Вызов конструктору SoapClient возвращается нормально. Когда я пытаюсь вызвать его с помощью $ client-> FunctionName, страница просто долго загружается и в итоге возвращает ошибку «Ошибка получения заголовков http». Что именно это должно означать и как мне это исправить? (Использование сервиса от .Net клиента работает отлично.)

Ответы [ 2 ]

6 голосов
/ 21 декабря 2009

Конфигурация по умолчанию в wsHttpBinding использует расширенные функции WS-Security и WS-Addressing, которые не понятны обычному PHP SoapClient. Существуют и другие доступные клиентам PHP SOAP-клиенты, которые могут работать (например, Apache Axis2 + Rampart / C), или вы можете попробовать отключить некоторые несовместимые функции wsHttpBinding (безопасность сообщений, вероятно, первая). Не скажу, что это не сработает, но вам, вероятно, понадобятся некоторые методики проб и ошибок, чтобы все заработало правильно.

0 голосов
/ 19 декабря 2009

В последний раз, когда я проверял, php не поддерживал wsHttpBinding

...