我创建了一个使用 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>
我想我仅限于四种预定义编码之一: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();
似乎没有格式化程序适合预期的编码。还有另一种统一编码的方法吗?也许是自定义编码器或类似的东西?或者我在调整格式化程序和编码器方面完全错了?
提前致谢。