Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ukázka MTOM demonstruje použití kódování zpráv mechanismem optimalizace přenosu zpráv (MTOM) s WSHttpBinding. MTOM je mechanismus pro přenos velkých binárních příloh se zprávami SOAP jako nezpracovaných bajtů, což umožňuje menší zprávy.
Ve výchozím nastavení wsHttpBinding odesílá a přijímá zprávy jako normální text XML. Chcete-li povolit odesílání a příjem zpráv MTOM, nastavte messageEncoding atribut konfigurace vazby (jako v následujícím ukázkovém kódu) nebo přímo na vazbu pomocí MessageEncoding vlastnosti. Služba nebo klient teď může odesílat a přijímat zprávy MTOM.
<wsHttpBinding>
<binding name="WSHttpBinding_IUpload" messageEncoding="Mtom" />
</wsHttpBinding>
Kodér MTOM dokáže optimalizovat pole bajtů a datových proudů. V této ukázce operace používá Stream parametr a dá se proto optimalizovat.
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
public interface IUpload
{
[OperationContract]
int Upload(Stream data);
}
Kontrakt vybraný pro tuto ukázku přenáší binární data do služby a přijímá počet bajtů nahraných jako návratovou hodnotu. Při instalaci služby a spuštění klienta se vypíše číslo 1000, což znamená, že bylo přijato všech 1 000 bajtů. Zbývající část výstupu obsahuje optimalizované a neoptimalizované velikosti zpráv pro různé payloady.
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.
Účelem použití MTOM je optimalizovat přenos velkých binárních datových částí. Odeslání zprávy SOAP pomocí MTOM má znatelnou režii u malého binárního obsahu, ale je velmi úsporné, když velikost překročí několik tisíc bajtů. Důvodem je, že normální text XML kóduje binární data pomocí Base64, který vyžaduje čtyři znaky pro každé tři bajty, a zvyšuje velikost dat o jednu třetinu. MTOM dokáže přenášet binární data jako nezpracované bajty, což šetří čas kódování a dekódování a výsledkem jsou menší zprávy. Ve srovnání s dnešními obchodními dokumenty a digitálními fotografiemi je prahová hodnota několika tisíc bajtů malá.
Jak nastavit, sestavit a spustit ukázku
Pomocí následujícího příkazu nainstalujte ASP.NET 4.0.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enableUjistěte se, že jste provedli instalační proceduru One-Time pro ukázky Windows Communication Foundation.
Pokud chcete sestavit verzi C# nebo Visual Basic .NET řešení, postupujte podle pokynů v Sestavení ukázek Windows Communication Foundation.
Pokud chcete spustit ukázku v konfiguraci pro jeden počítač nebo pro více počítačů, postupujte podle pokynů v Spuštění ukázek Windows Communication Foundation.