通过wsHttpBinding在PHP中调用WCF WebService

4

我有一个WCF webservice,可以通过basicHttp连接,但无法通过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调用其中一个函数时,页面会一直加载很长时间,最终返回错误“Error Fetching http headers”。这到底意味着什么,我该如何解决?(从.Net客户端使用该服务完美无缺。)

2个回答

6

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


0

我上次检查时,php不支持wsHttpBinding


Svetlozar,你在哪里查找了?你写了一些代码,查看了谷歌并且像我一样进展顺利吗?你在PHP文档中查找了吗?还是在邮件列表中查找了?如果无法完成,我想知道为什么无法完成。 - Justin Dearing
2
同意,这种概括性的陈述需要有一些实质内容。PHP和WCF是我正在努力解决的领域,网络上有很多变通方法似乎都是人们“摸索”出来的,直到他们让它工作为止,但迄今为止没有人能够逐步确定交互中的确切问题。 - Xcalibur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接