我从wcf服务器以流的形式返回一个内存流。 当我在客户端中检索它并将其转发回MemoryStream时,我收到此错误。
我不明白MessageBodyStream来自哪里,因为我从未使用它。有人可以告诉我这个问题的解决方案吗?
谢谢。
答案 0 :(得分:7)
为什么不将它用作Stream
而不是MemoryStream
?
您可能需要阅读this博文,其中特别提及您所看到的行为:
例如,如果你发送一个 MemoryStream,接收器会 收到它作为 System.ServiceModel.Dispatcher.StreamFormatter.MessageBodyStream class(收到你发送的任何流 如此)。
http://christopherdeweese.com/blog2/post/streaming-in-wcf-knowing-is-half-the-battle
以下是有关该主题的一些MSDN信息:http://msdn.microsoft.com/en-us/library/ms733742.aspx
答案 1 :(得分:3)
This post建议,如果要将其作为MemoryStream访问,则需要先将此流读入MemoryStream。因为any stream you send is received as MessageBodyStream。
答案 2 :(得分:2)
MessageBodyStream
和MemoryStream
是不相关的类型,您无法将其中一个转换为另一个类型。您应该可以将返回的对象用作Stream
。