【发布时间】:2012-01-14 16:11:29
【问题描述】:
我已经使用带有 WCF 的 MSMQ 和 NetMsmqBinding 完成了一些工作,以生成消息并在它们到达时将它们出列。我还通过使用对象图作为消息体来标准化我的解决方案。该对象包含元数据和内部负载。
我想构建一个可以监控队列和查看消息内容的管理工具。到目前为止,我一直没有成功弄清楚如何使用 System.Messaging 库将 Message.Body 反序列化回对象图中。
有什么想法吗?
【问题讨论】:
-
到目前为止您尝试过什么?有任何错误信息吗?另外,你见过队列资源管理器吗? cogin.com/mq
-
默认情况下,只需将 message.Body 作为一个对象访问,就会得到典型的 InvalidOperationException “找不到能够读取此消息的格式化程序”。使用 XmlMessageFormatter,它会爆炸,因为内容不是有效的 XML。使用 BinaryFormatter,它也会失败并显示“无法反序列化作为参数传递的消息。无法识别序列化格式。”我刚刚开始尝试使用一种新方法,但仍然没有运气。
-
你可能做不到。 NetMsmqBinding 不会简单地将您的对象图序列化为消息并将消息排入队列。消息正文的前面添加了一些协议位。
标签: wcf serialization msmq