SSL: доступ к SOAP-сервису по сломанному каналу с помощью PHP SoapClient - PullRequest
1 голос
/ 08 ноября 2010

У меня есть SOAP WS, к которому я обращаюсь через PHP SoapClient (обернутый клиентом Zend Framework Soap Client). Веб-служба работает через https, а вызовы занимают довольно много времени (по несколько минут).

Я делаю 4 звонка один за другим через один и тот же экземпляр SoapClient. Однако после некоторого времени работы и в произвольной точке (не всегда при одном и том же вызове метода) я вижу следующую ошибку:

Предупреждение: SoapClient :: __ doRequest (): SSL: сломанный канал в файле пути

Ответы [ 2 ]

3 голосов
/ 27 мая 2011

Я до сих пор не знаю, почему это произошло, но у меня есть некоторая дополнительная информация и обходной путь.

Проблема возникает, когда после вызова SOAP, который занял очень много времени, я пытаюсь использоватьто же соединение для другого запроса.Первый будет успешным, но при новом вызове возникает ошибка.

Это означает, что до тех пор, пока вам НЕ НУЖНО, чтобы соединение было одинаковым (что обычно имеет место в веб-сервисах SOAP), вы можете просто сбросить соединение между вызовами.Не самое эффективное использование ресурсов, но будет работать без нареканий.

2 голосов
/ 17 ноября 2016

Я обнаружил, что добавление опции

'keep_alive' => false

к

new SoapClient($url, $options)

решило проблему для меня.

Здесь есть сообщение об ошибке, но очень малоДокументация об этом кроме этого: https://bugs.php.net/bug.php?id=60329

...