Wednesday, January 7, 2009

WCF with MTOM Message Encoding.

 

WCF -Windows Communication Foundation supports three type of Message encoding

1) Text

2)Binary

3) MTOM - Message Transmission Optimization Mechanism 

In WCF  Endpoint consists of ABC .   A= Address , B=Binding , C=Contract.

Binding is the one tells how to exchange data transfer between endpoints (WCF Service to WCF Client).

Encoding : Is a Process of transforming a message into a sequence of bytes. Decoding is the reverse process. Windows Communication Foundation (WCF) includes three types of encoding for SOAP messages: Text, Binary and Message Transmission Optimization Mechanism (MTOM).

In WCF you can specify Message encoding in type in Binding element in Application Configuration file  as shown below.

<bindings>
            <wsHttpBinding>
                <binding name="wsWithMTOM" maxReceivedMessageSize="665536" messageEncoding="Mtom"/>
            </wsHttpBinding>
</bindings>

Let See in Action

Lets define a WCF Service with  One Operation Contract called   GetImage .

image

Here is the Implantation of   GetImage Operation Contract.

image 

Here is the WCF Service  Configuration Line

image

maxReceivedMessageSize - Make sure that you increase the size of this both Service and Client Configuration file. 

maxArrayLength - Increase the size on Client side configuration .

This is the error message you get if the size of the maxArrayLength  is not  big enough.

image

Here is the WCF Client code snippet

image

 

When you call GetImge Operation it will return Byte array  , I am converting that to MemoryStream from that i am getting as Image . binding returned image to PictureBox control and here is the out put.

image

thanks

Sreeni

4 comments:

raj said...

code snippet images are not visible.

Unknown said...

Many Thanks friend..

I was looking for this for a longtime..

Unknown said...
This comment has been removed by the author.
Unknown said...

Thanks...