WCF MTOM功能特點介紹
作為一款.NET Framework 3.5重要組成部件的WCF,它在實際應用中占據著一個非常重要的地位。在這里我們將會為大家講解一個關于WCF MTOM的示例。此示例演示如何將消息傳輸優化機制 (MTOM) 消息編碼與 WSHttpBinding 一起使用。WCF MTOM是一種機制,用來以原始字節形式傳輸包含 SOAP 消息的較大二進制附件,從而使所傳輸的消息較小。
默認情況下,WSHttpBinding 以正常文本 XML 形式發送和接收消息。若要允許發送和接收 MTOM 消息,請在綁定的配置中設置 messageEncoding 屬性 (Attribute)(如下面的示例代碼中所示),或者使用 MessageEncoding 屬性 (Property) 直接在綁定中進行設置。服務或客戶端現在可以發送和接收 MTOM 消息了。
- < wsHttpBinding>
- < binding name="WSHttpBinding_IUpload" messageEncoding="Mtom"/>
- < /wsHttpBinding>
WCF MTOM編碼器可以優化字節和流的數組。在下面的示例中,操作使用 Stream 參數,因此可以進行優化。
- [ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
- public interface IUpload
- {
- [OperationContract]
- int Upload(Stream data);
- }
為該示例選擇的協定會將二進制數據傳輸到服務,并將上載的字節數作為返回值接收。在安裝服務之后運行客戶端時,服務會顯示數字 1000,這表示收到了全部 1000 個字節。剩下的輸出列出了在各種負載情況下經過優化和未經優化的消息大小。
- 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.
以上就我們為大家介紹的WCF MTOM相關應用技巧。
【編輯推薦】

















