ID: 43991
Comment by: zkroecher at gingco dot net
Reported By: s dot slater at cabletime dot com
Status: Open
Bug Type: SOAP related
Operating System: Windows Vista + IIS7.0
PHP Version: 5.2.5
New Comment:
We have the same problem on Windows 2008 Server with IIS7, using
php5ispai.dll.
No solution yet?
Previous Comments:
------------------------------------------------------------------------
[2008-01-31 12:13:12] s dot slater at cabletime dot com
Description:
------------
PHP SOAP seems to return an incorrect Content-Length in the HTTP header
(8 bytes too small) which causes a problem with IIS7 on Windows Vista.
Note that the incorrect value is present but does not cause a problem
with IIS5.1 on XP or with Apache on Vista, XP or Linux. You don't see
any symptoms unless using IIS7.
Reproduce code:
---------------
The problem seems to occur on any response I get from PHP SOAP.
Used 5.2.5 installed with Windows installer with SOAP + PDO SQLite
modules and running as CGI
Expected result:
----------------
Looking at a specific example with Wireshark on various servers, the
full body of the SOAP response consists of 578 bytes:
SP CR LF
569 bytes of XML
LF SP CR LF CR LF
I would expect the HTTP header to include Content-Length: 578
Actual result:
--------------
The HTTP header contains Content-Length: 570
What I actually receive in the client is:
With IIS7: 570 bytes of body, so the last two bytes of the XML are
truncated and my Java applet client software won't parse it
With IIS5.1: 570 bytes of body followed by a second HTTP packet
containing the last 8 bytes, which works
With Apache: The whole response in one HTTP packet with no truncation,
which works
So the SOAP communication still works OK on the older IIS and Apache
even with the incorrect content length, but on each message sent by
vista the response ends with "</SOAP-ENV:Envelop" and the "e>" and
terminating bytes are missing.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=43991&edit=1