是否可以在Windows 8应用程序中使用MTOM编码调用WCF服务?

是否可以在Windows 8应用程序中使用MTOM编码调用WCF服务?,wcf,windows-8,basichttpbinding,mtom,Wcf,Windows 8,Basichttpbinding,Mtom,我有一个WCF服务,其端点使用一个基本的HttpBinding,messageEncoding设置为Mtom。我正在使用基本凭据的传输安全性 <binding name="basic" messageEncoding="Mtom"> <security mode="Transport"> <transport clientCredentialType="Basic" /> </security> </binding>

我有一个WCF服务,其端点使用一个基本的HttpBinding,messageEncoding设置为Mtom。我正在使用基本凭据的传输安全性

<binding name="basic" messageEncoding="Mtom">
  <security mode="Transport">
    <transport clientCredentialType="Basic" />
  </security>
</binding>
如果我使用Mtom编码,我会在GetX调用中得到一个讨厌的ProtocolException。如果我使用文本编码,它会工作


有没有办法让服务使用Mtom编码?

Mtom支持不在.NET Framework for Windows应用商店应用程序中包含的WCF子集中,因此简单的答案是“否”-无法调用它。更完整的答案是,理论上仍然可以调用它,但是您需要自己编写一个自定义编码器来处理MTOM编码,这不是一件容易的事情

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();