Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sampel MTOM menunjukkan penggunaan pengodean pesan Message Transmission Optimization Mechanism (MTOM) dengan WSHttpBinding. MTOM adalah mekanisme untuk mengirimkan lampiran biner besar dengan pesan SOAP sebagai byte mentah, memungkinkan pesan yang lebih kecil.
Secara default, WSHttpBinding mengirim dan menerima pesan sebagai XML teks normal. Untuk mengaktifkan pengiriman dan penerimaan pesan MTOM, atur messageEncoding atribut pada konfigurasi pengikatan (seperti dalam contoh kode berikut), atau langsung pada pengikatan menggunakan MessageEncoding properti . Layanan atau klien sekarang dapat mengirim dan menerima pesan MTOM.
<wsHttpBinding>
<binding name="WSHttpBinding_IUpload" messageEncoding="Mtom" />
</wsHttpBinding>
Encoder MTOM dapat mengoptimalkan array byte dan aliran data. Dalam sampel ini, operasi menggunakan Stream parameter dan oleh karena itu dapat dioptimalkan.
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
public interface IUpload
{
[OperationContract]
int Upload(Stream data);
}
Kontrak yang dipilih untuk sampel ini mengirimkan data biner ke layanan dan menerima jumlah byte yang diunggah sebagai nilai pengembalian. Ketika layanan diinstal dan klien dijalankan, layanan mencetak angka 1000, yang menunjukkan bahwa semua 1000 byte diterima. Sisa output mencantumkan ukuran pesan yang dioptimalkan dan tidak dioptimalkan untuk berbagai payload.
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.
Tujuan untuk menggunakan MTOM adalah untuk mengoptimalkan transmisi payload biner besar. Mengirim pesan SOAP menggunakan MTOM memiliki overhead yang ketara untuk payload biner kecil, tetapi menjadi penghematan yang besar saat ukurannya melebihi beberapa ribu byte. Alasannya adalah bahwa XML teks normal mengodekan data biner menggunakan Base64, yang memerlukan empat karakter untuk setiap tiga byte, dan meningkatkan ukuran data sepertiga. MTOM dapat mengirimkan data biner sebagai byte mentah, sehingga menghemat waktu pengodean/decoding dan menghasilkan pesan yang lebih kecil. Ambang beberapa ribu byte kecil jika dibandingkan dengan dokumen bisnis dan foto digital saat ini.
Untuk menyiapkan, mengompilasi, dan menjalankan sampel
Instal ASP.NET 4.0 menggunakan perintah berikut.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enablePastikan Anda telah melakukan Prosedur Penyiapan One-Time untuk Sampel Windows Communication Foundation.
Untuk membangun solusi edisi C# atau Visual Basic .NET, ikuti instruksi di Membangun Sampel Windows Communication Foundation.
Untuk menjalankan sampel dalam konfigurasi satu atau lintas komputer, ikuti instruksi di Menjalankan Sampel Windows Communication Foundation.