4

我有一个 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 客户端的服务可以完美运行。)

4

2 回答 2

6

wsHttpBinding 上的默认配置使用普通 PHP SoapClient 无法理解的高级 WS-Security 和 WS-Addressing 功能。还有其他 PHP 可访问的 SOAP 客户端可能能够工作(例如 Apache Axis2+Rampart/C),或者您可以尝试关闭一些不兼容的 wsHttpBinding 功能(消息安全性可能是第一个)。并不是说它不起作用,但您可能需要一些反复试验才能使其正常工作。

于 2009-12-21T05:39:00.613 回答
0

上次检查,php不支持wsHttpBinding

于 2009-12-19T15:53:46.277 回答