1

messageEncoding が Mtom に設定された basicHttpBinding を使用するエンドポイントを持つ WCF サービスがあります。基本的な資格情報でトランスポート セキュリティを使用しています。

<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 エンコーディングで動作させる方法はありますか?

4

1 に答える 1

2

MTOM のサポートは、Windows ストア アプリケーション用の .NET Framework に含まれる WCF のサブセットには含まれていないため、単純な答えはノーです。それを呼び出すことはできません。より完全な答えは、理論上はまだそれを呼び出すことができるということですが、MTOM エンコーディングを自分で処理するにはカスタム エンコーダーを作成する必要があり、これは簡単なことではありません。

于 2012-10-22T23:23:54.280 に答える