Kódování MTOM
Ukázka MTOM ukazuje použití kódování zpráv MTOM (Message Transmission Optimization Mechanism) se 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 neoptimalizovat velikosti zpráv pro různé datové části.
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ých binárních datových částí, ale stává se velkými úsporami, když rostou přes 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. Prahová hodnota několika tisíc bajtů je v porovnání s dnešními obchodními dokumenty a digitálními fotografiemi malá.
Nastavení, sestavení a spuštění ukázky
Pomocí následujícího příkazu nainstalujte ASP.NET 4.0.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
Ujistěte se, že jste pro ukázky windows Communication Foundation provedli jednorázovou instalační proceduru.
Pokud chcete sestavit edici C# nebo Visual Basic .NET řešení, postupujte podle pokynů v části Sestavení ukázek windows Communication Foundation.
Pokud chcete spustit ukázku v konfiguraci s jedním nebo více počítači, postupujte podle pokynů v části Spuštění ukázek windows Communication Foundation.