WCF MTOM功能特點介紹
作為一款.NET Framework 3.5重要組成部件的WCF,它在實際應用中占據著一個非常重要的地位。在這里我們將會為大家講解一個關于WCF MTOM的示例。此示例演示如何將消息傳輸優(yōu)化機制 (MTOM) 消息編碼與 WSHttpBinding 一起使用。WCF MTOM是一種機制,用來以原始字節(jié)形式傳輸包含 SOAP 消息的較大二進制附件,從而使所傳輸?shù)南⑤^小。
默認情況下,WSHttpBinding 以正常文本 XML 形式發(fā)送和接收消息。若要允許發(fā)送和接收 MTOM 消息,請在綁定的配置中設置 messageEncoding 屬性 (Attribute)(如下面的示例代碼中所示),或者使用 MessageEncoding 屬性 (Property) 直接在綁定中進行設置。服務或客戶端現(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ù)據傳輸?shù)椒眨⑸陷d的字節(jié)數(shù)作為返回值接收。在安裝服務之后運行客戶端時,服務會顯示數(shù)字 1000,這表示收到了全部 1000 個字節(jié)。剩下的輸出列出了在各種負載情況下經過優(yōu)化和未經優(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相關應用技巧。
【編輯推薦】