У меня есть служба WCF, конечная точка которой использует basicHttpBinding с параметром messageEncoding, установленным на Mtom. Я использую транспортную безопасность с базовыми учетными данными.
<binding name="basic" messageEncoding="Mtom">
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
Клиент представляет собой приложение Магазина Windows 8:
BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
var client = new MyClient(binding, new EndpointAddress("https://..."));
client.ClientCredentials.UserName.UserName = "...";
client.ClientCredentials.UserName.Password = "...";
var x = await client.GetX();
Если я использую кодировку Mtom, я получаю неприятное исключение ProtocolException при вызове GetX. Если я использую текстовую кодировку, это работает.
Есть ли способ заставить сервис работать с кодировкой Mtom?