Как использовать службу wcf, работающую локально в Visual Studio 2017, из приложения PHP, работающего локально в контейнере Docker?

У меня работает служба WCF localhost:56000 в режиме отладки из проекта Visual Studio. У меня также есть приложение LAMP в контейнере Docker на localhost:8080, В моем файле configuration.php у меня есть глобально доступная переменная с именем SoapUri это установлено к конечной точке wsdl public $SoapUri = 'https://[WCF-server-address]/serviceName.svc?wsdl';,

Это работает в производстве, но установив $ SoapUri в public $SoapUri = 'http://localhost:56000/serviceName.svc?wsdl'; не работает.

Я понимаю, что localhost ссылается на localhost внутри контейнера, и я мог бы использовать специальное имя DNS ‘Host.docker.internal’ ссылаться на хост контейнера, но изменив $ SoapUri на public $SoapUri = 'http://host.docker.internal:56000/serviceName.svc?wsdl'; тоже не работает.

Я также попробовал это:

C:\Users\userName>ipconfig

Windows IP Configuration

Ethernet adapter vEthernet (DockerNAT):

Connection-specific DNS Suffix  . :
Link-local IPv6 Address . . . . . : fe80::cd21:7994:1a5a:7cc0%3
IPv4 Address. . . . . . . . . . . : 10.0.75.1
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :

Затем установка на public $SoapUri = 'http://10.0.75.1:56000/serviceName.svc?wsdl';

Это казалось самым многообещающим, потому что я не сразу выбрасываю эту ошибку …

php_1     | [20-Jul-2018 19:06:27] WARNING: [pool www] child 5 said into stderr: "NOTICE: PHP message: PHP Fatal error:  SOAP-ERROR: Parsing WSDL: Couldn't load from 'host.docker.internal:56000/serviceName.svc?wsdl' : failed to load external entity "host.docker.internal:56000/serviceName.svc?wsdl""

…но вместо этого сначала тайм-аут, а затем выдает ошибку, но я думаю, что это вводит в заблуждение.

Очевидно, что я что-то здесь упускаю и не совсем понимаю, что происходит, когда я пытаюсь получить локальный адрес wsdl из контейнера.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]