php SoapClient和负载平衡服务器
我正在开发一个php SoapClient。Soap服务器是一个.NET服务器。 当客户端调用http地址,并且当应答来自客户端调用的服务器时,一切都正常工作 我遇到的问题是,客户端必须调用https地址,而服务器使用负载平衡系统,导致从另一台服务器获取答案(客户端调用serverX,有时从serverY获取答案,有时从serverZ获取答案,等等) 以下是我使用的php代码(在没有https和负载平衡的情况下可以正常工作,在https和负载平衡的情况下不能工作): 你知道我该怎么做吗?任何提示都将不胜感激php SoapClient和负载平衡服务器,php,soap,load-balancing,Php,Soap,Load Balancing,我正在开发一个php SoapClient。Soap服务器是一个.NET服务器。 当客户端调用http地址,并且当应答来自客户端调用的服务器时,一切都正常工作 我遇到的问题是,客户端必须调用https地址,而服务器使用负载平衡系统,导致从另一台服务器获取答案(客户端调用serverX,有时从serverY获取答案,有时从serverZ获取答案,等等) 以下是我使用的php代码(在没有https和负载平衡的情况下可以正常工作,在https和负载平衡的情况下不能工作): 你知道我该怎么做吗?任何提示
谢谢我终于找到了工作 我没有使用服务器提供的XML文件实例化php SoapClient,而是在客户端复制了它,并对其进行了一些修改。我只更改了“schemaLocation”:服务器端,值类似于“”,我将其替换为“”。 现在,我用这个新文件实例化php SoapClient:
$client = new SoapClient('/local_path/wsdl.xml');
而且它有效 这是webservice实现中的一个bug。除了不使用
SoapClient
和使用较低级别的库(HTTP+XML)实现通信之外,您不能做太多事情。Ok@hek2mgl谢谢您的回答!我尝试使用HTTP+XML(使用cURL)。同样,当没有https和负载平衡时,它可以正常工作,但不能使用https和负载平衡。我猜这是因为http响应与http请求来自不同的服务器。。。有没有可能,你有没有办法做到这一点!?谢谢我已经说过了,你做不了多少。Web服务供应商需要修复其应用程序。您可以尝试从每台服务器下载wsdl,并将它们放入soap\u cache\u文件夹中,使它们具有正确的url,然后将缓存生存期设置为-1
$client = new SoapClient('/local_path/wsdl.xml');