Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php SoapClient和负载平衡服务器_Php_Soap_Load Balancing - Fatal编程技术网

php SoapClient和负载平衡服务器

php SoapClient和负载平衡服务器,php,soap,load-balancing,Php,Soap,Load Balancing,我正在开发一个php SoapClient。Soap服务器是一个.NET服务器。 当客户端调用http地址,并且当应答来自客户端调用的服务器时,一切都正常工作 我遇到的问题是,客户端必须调用https地址,而服务器使用负载平衡系统,导致从另一台服务器获取答案(客户端调用serverX,有时从serverY获取答案,有时从serverZ获取答案,等等) 以下是我使用的php代码(在没有https和负载平衡的情况下可以正常工作,在https和负载平衡的情况下不能工作): 你知道我该怎么做吗?任何提示

我正在开发一个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');