• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

WCF client does not read streamed response

S

SvenC

#1
Hi,

I have a WCF client to consume an AXIS WebService hosted on an Apache
server.

Looking at the network data I can see that the server did understand the WCF
request and returns a "TransferEncoding: chunked". So the HTTPPayload always
starts with some bytes to indicate the length of the following block. The
length information is followed by a CR+LF followed by the block of the
specified length, followed by a CR+LF. The next block has an HTTPpayload of
"00 0d 0a 0d 0a 00" which seems to indicate the end of data.

The first block does contain a valid SOAP response, but my WCF client does
not seem to recognize it. I guess because the HTTPPayload starts with the
length indicator and not with the SOAP data. So my return value (of type
string in my case) is always null.

I specified a transferMode of Streamed in my app.config but that a did small
change only: the client request is now streamed to the server, which still
processes it and returns a streamed response which again doesn't make it
into my return value. I tried StreamedResponse, also - no success. Here is
some part of my config:

<system.serviceModel>

<bindings>
<basicHttpBinding>
<binding name="streamedBinding"
maxReceivedMessageSize="67108864" transferMode="Streamed" />
</basicHttpBinding>
</bindings>

<client>
<endpoint address="http://someServer/someService"
binding="basicHttpBinding" bindingConfiguration="streamedBinding"
contract="Process" name="Process" />
</client>

</system.serviceModel>

The Process contract has 3 string params as input and returns a string.
Calling that Service with .Net 2 Web References works flawlessly.

Any ideas?

Regards,
SvenC
 

My Computer

S

SvenC

#2
Hi,

"SvenC" <SvenC@community.nospam> wrote in message
news:39637B37-E994-4133-863F-982C0AF3C2C4@microsoft.com...
> Hi,
>
> I have a WCF client to consume an AXIS WebService hosted on an Apache
> server.
>
> Looking at the network data I can see that the server did understand the
> WCF request and returns a "TransferEncoding: chunked".
> The first block does contain a valid SOAP response, but my WCF client does
> not seem to recognize it. I guess because the HTTPPayload starts with the
> length indicator and not with the SOAP data. So my return value (of type
> string in my case) is always null.


When I manually change the method attributes (OperationFormatStyle and -Use)
on the generated proxy class to use Document/Literal instead of Rpc/Encoded
then I do get the SOAP response.
Is that expected behaviour?

As stated above, the WSDL was generated from an AXIS WebService.
Does AXIS support the RPC/Encoded operations?
Or could it generate a WSDL which would cause svcutil to generate a proxy
class which atributes the methods to use Document/Literal?

Regards,
SvenC
 

My Computer

D

Dwight@QuickLearn

#3
Doc\Lit is the default settings.

If you recieved the WSDL from AXIS, it's possible that the wsdl has its
operations and messages in the RPC encoded format, which is why the svcutil
generated proxy created the class to use the RPC encoded settings.

Use the SvcTraceViewer to check the actual soap message coming from the AXIS
service, to verify if it is indeed RPC/Document styled.

Hope this helps...
-Dwight
 

My Computer

Users Who Are Viewing This Thread (Users: 1, Guests: 0)