ID: 50698
Updated by: srinatar@php.net
Reported By: zippy1981 at gmail dot com
-Status: Open
+Status: Feedback
Bug Type: Feature/Change Request
Operating System: Windows XP/7 and probably all.
PHP Version: 5.2.12, 5.3.1
New Comment:
as far as I understand, Microsoft TCP transport spec is a private
interface for communicating between .Net server/clients. I would expect
that you will need SOAP/TCP as end point for communicating between php
client and .Net server.
Af course,my knowledge might be outdated on this.
Previous Comments:
------------------------------------------------------------------------
[2010-01-12 21:49:27] zippy1981 at gmail dot com
Verified on Windows 7 as well.
------------------------------------------------------------------------
[2010-01-10 22:10:39] zippy1981 at gmail dot com
Also verified to break on 5.3.1.
------------------------------------------------------------------------
[2010-01-08 21:52:35] zippy1981 at gmail dot com
I also reported this on stack overflow. If anyone has any suggestions
for workarounds, especially if there workaround on the .NET side feel
free to post them there.
http://stackoverflow.com/questions/1933213/connecting-to-a-wcf-service-
in-php-that-has-a-a-nettcp-binding-and-a-basichttpbin
------------------------------------------------------------------------
[2010-01-08 21:19:44] zippy1981 at gmail dot com
Description:
------------
I have a WCF web service written in .NET that has different endpoints.
I
want .NET clients to be able to talk to it using nettcp (a propietary
microsoft protocol) and PHP to be able to talk to it using basicHttp
(soap 1.1). However, if WSDL contains any endpoints other than http or
https endpoints I get the following error:
PHP Fatal error: SOAP-ERROR: Parsing WSDL: PHP-SOAP doesn't support
transport 'http://schemas.microsoft.com/soap/tcp'
I think the following should occur:
If no endpoint is explicitly specified in the constructor, PHP should
pick the first compatible endpoint available in the wsdl and use it. If
the endpoint is explicitly declared in the constructor, then PHP should
not care about the available endpoints.
Reproduce code:
---------------
<?php
// .NET Service that this calls exists at
http://github.com/zippy1981/EchoService
$client = new SoapClient
('http://localhost:8731/EchoService/?wsdl',
array(
'location' =>
'http://localhost:8731/EchoService/Basic',
'trace' => true,
'soap_version' => SOAP_1_1,
'connection_timeout' => 5
)
);
echo $client->echo(array('request' => "Hello World"))->EchoResult;
?>
Expected result:
----------------
c:\php\php.exe EchoClient.php
Hello World
Actual result:
--------------
PHP Fatal error: SOAP-ERROR: Parsing WSDL: PHP-SOAP doesn't support
transport 'http://schemas.microsoft.com/soap/tcp'
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=50698&edit=1