Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
MTOM örneği, WSHttpBinding ile İleti İletim İyileştirme Mekanizması (MTOM) ileti kodlamasının kullanımını gösterir. MTOM, BÜYÜK ikili ekleri SOAP iletileriyle ham bayt olarak ileterek daha küçük iletilere olanak sağlayan bir mekanizmadır.
Varsayılan olarak, WSHttpBinding iletileri normal metin XML'i olarak gönderir ve alır. MTOM mesajlarının gönderilmesini ve alınmasını etkinleştirmek için, bağlamanın messageEncoding yapılandırmasındaki özniteliği (aşağıdaki örnek kodda olduğu gibi) ayarlayın veya doğrudan bağlamada MessageEncoding özelliğini kullanarak ayarlayın. Hizmet veya istemci artık MTOM iletileri gönderebilir ve alabilir.
<wsHttpBinding>
<binding name="WSHttpBinding_IUpload" messageEncoding="Mtom" />
</wsHttpBinding>
MTOM kodlayıcı bayt ve akış dizilerini iyileştirebilir. Bu örnekte işlem bir Stream parametre kullanır ve bu nedenle iyileştirilebilir.
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
public interface IUpload
{
[OperationContract]
int Upload(Stream data);
}
Bu örnek için seçilen sözleşme, ikili verileri hizmete iletir ve yüklenen bayt sayısını dönüş değeri olarak alır. Hizmet yüklendiğinde ve istemci çalıştırıldığında, tüm 1000 baytların alındığını gösteren 1000 sayısını yazdırır. Çıktının geri kalanında, çeşitli yükler için iyileştirilmiş ve iyileştirilmemiş ileti boyutları listelenir.
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.
MTOM kullanmanın amacı, büyük ikili yüklerin iletimini iyileştirmektir. MTOM kullanarak SOAP iletisi göndermenin küçük ikili veri yükleri için belirgin bir ek yükü vardır, ancak birkaç bin bayttan fazla büyüdüğünde büyük tasarruf sağlar. Bunun nedeni, normal metin XML'sinin her üç bayt için dört karakter gerektiren Base64 kullanarak ikili verileri kodlaması ve verilerin boyutunu üçte bir artırmasıdır. MTOM, ikili verileri ham bayt olarak iletebilir ve kodlama/kod çözme süresinden tasarruf eder ve sonuçta daha küçük iletiler olur. Günümüzün iş belgelerine ve dijital fotoğraflara kıyasla birkaç bin baytlık eşik küçüktür.
Örneği ayarlamak, derlemek ve çalıştırmak için
Aşağıdaki komutu kullanarak ASP.NET 4.0'ı yükleyin.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enableWindows Communication Foundation Örnekleri içinOne-Time Kurulum Yordamını yaptığınızdan emin olun.
Çözümün C# veya Visual Basic .NET sürümünü oluşturmak için Windows Communication Foundation Örneklerioluşturma başlığındaki yönergeleri izleyin.
Örneği tek bir makine veya makineler arası bir yapılandırmada çalıştırmak için, Windows Communication Foundation örneklerini çalıştırmayönergelerini izleyin.