2010-02-02 109 views
9

我有一个WCF消息(Channels.Message),我试图使用.GetBody()提取身体。然而,我注意到我只能做一次,如果我试图再次使用“GetBody <>”,我得到:“此消息无法支持该操作,因为它已被读取。”读取WCF消息正文两次 - “消息无法读取”

任何想法如何重新读取消息正文?

感谢

回答

13

这里是关于你正在尝试MSDN上做了相当不错的文章。请参阅标题为将消息复制到缓冲区中的部分。它明确地谈到必须不止一次访问消息体。

http://msdn.microsoft.com/en-us/library/ms734675.aspx

+0

是不会有什么帮助.... 我了解到,你可以阅读邮件正文只有一次,但我不能找到MSFT逻辑在这里... – 2010-02-02 15:05:33

+5

具体文章说。 “ ”有时候需要多次访问消息体,例如,将同一消息转发到作为发布者 - 订阅者系统的一部分的多个目的地,在这种情况下,需要缓冲整个消息(包括正文),你可以通过调用CreateBufferedCopy来完成。“ 如果您再看看本节中的示例代码,它将显示使用CreateBufferedCopy不止一次访问消息正文 – 2010-02-02 15:12:50