MSMQ を使用する WCF サービスを作成しました。
複数の .NET クライアントがこのサービスを利用してメッセージを送信できる必要があります。
一部のクライアントは、WCF が存在しない .NET バージョン (.NET 1.1 など) で作成されています。
これらのクライアントには、Msmq API を直接使用します。
問題は、メッセージのエンコーディングがサービス側で期待されるエンコーディングに適合しないことです。
そこで、次を使用してサービス側でメッセージエンコーディングを変更しようとしましたcustomBinding
:
<bindings>
<customBinding>
<binding name="MyCustomBinding">
<!-- available encodings: -->
<!-- <textMessageEncoding /> -->
<!-- <binaryMessageEncoding /> -->
<!-- <mtomMessageEncoding /> -->
<!-- <webMessageEncoding /> -->
<msmqTransport ...>
<msmqTransportSecurity ... />
</msmqTransport>
</binding>
</customBinding>
</bindings>
事前に定義された 4 つのエンコーディングのうちの 1 つに制限されていると思います: textMessageEncoding
、binaryMessageEncoding
、。mtomMessageEncoding
webMessageEncoding
クライアント側では、フォーマッタを変更しようとしました:
System.Messaging.Message msmqMessage = new System.Messaging.Message();
msmqMessage.Formatter = new System.Messaging.ActiveXMessageFormatter();
//msmqMessage.Formatter = new System.Messaging.BinaryMessageFormatter();
//msmqMessage.Formatter = new System.Messaging.XMLMessageFormatter();
予想されるエンコーディングに適合するフォーマッターがないようです。エンコーディングを統一する別の方法はありますか? おそらくカスタムエンコーダーかそのようなものでしょうか?または、フォーマッターとエンコーダーの調整が完全に間違っていますか?
前もって感謝します。