我有一个 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 编码,我会在 GetX 调用中得到一个讨厌的 ProtocolException。如果我使用文本编码,它可以工作。
有什么方法可以使服务与 Mtom 编码一起工作?