WCF MTOM功能特點介紹
作為一款.NET Framework 3.5重要組成部件的WCF,它在實際應(yīng)用中占據(jù)著一個非常重要的地位。在這里我們將會為大家講解一個關(guān)于WCF MTOM的示例。此示例演示如何將消息傳輸優(yōu)化機制 (MTOM) 消息編碼與 WSHttpBinding 一起使用。WCF MTOM是一種機制,用來以原始字節(jié)形式傳輸包含 SOAP 消息的較大二進制附件,從而使所傳輸?shù)南⑤^小。
默認情況下,WSHttpBinding 以正常文本 XML 形式發(fā)送和接收消息。若要允許發(fā)送和接收 MTOM 消息,請在綁定的配置中設(shè)置 messageEncoding 屬性 (Attribute)(如下面的示例代碼中所示),或者使用 MessageEncoding 屬性 (Property) 直接在綁定中進行設(shè)置。服務(wù)或客戶端現(xiàn)在可以發(fā)送和接收 MTOM 消息了。
- < wsHttpBinding>
 - < binding name="WSHttpBinding_IUpload" messageEncoding="Mtom"/>
 - < /wsHttpBinding>
 
WCF MTOM編碼器可以優(yōu)化字節(jié)和流的數(shù)組。在下面的示例中,操作使用 Stream 參數(shù),因此可以進行優(yōu)化。
- [ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
 - public interface IUpload
 - {
 - [OperationContract]
 - int Upload(Stream data);
 - }
 
為該示例選擇的協(xié)定會將二進制數(shù)據(jù)傳輸?shù)椒?wù),并將上載的字節(jié)數(shù)作為返回值接收。在安裝服務(wù)之后運行客戶端時,服務(wù)會顯示數(shù)字 1000,這表示收到了全部 1000 個字節(jié)。剩下的輸出列出了在各種負載情況下經(jīng)過優(yōu)化和未經(jīng)優(yōu)化的消息大小。
- Output:
 - 1000
 - Text encoding with a 100 byte payload: 433
 - MTOM encoding with a 100 byte payload: 912
 - Text encoding with a 1000 byte payload: 1633
 - MTOM encoding with a 1000 byte payload: 2080
 - Text encoding with a 10000 byte payload: 13633
 - MTOM encoding with a 10000 byte payload: 11080
 - Text encoding with a 100000 byte payload: 133633
 - MTOM encoding with a 100000 byte payload: 101080
 - Text encoding with a 1000000 byte payload: 1333633
 - MTOM encoding with a 1000000 byte payload: 1001080
 - Press < ENTER> to terminate client.
 
以上就我們?yōu)榇蠹医榻B的WCF MTOM相關(guān)應(yīng)用技巧。
【編輯推薦】















 
 
 
 
 
 
 