Wcf 以流传输模式从非类型化消息获取流
我正在尝试使用合同创建流式WCF服务Wcf 以流传输模式从非类型化消息获取流,wcf,Wcf,我正在尝试使用合同创建流式WCF服务 void Send(Message message) 我使用 var requestMessage = Message.CreateMessage(MessageVersion.Default, "operation", new StreamableBodyWriter(inputStream)); 其中StreamableBodyWriter继承自System.ServiceModel.Channels.StreamBodyWriter并重写OnWri
void Send(Message message)
我使用
var requestMessage = Message.CreateMessage(MessageVersion.Default, "operation", new StreamableBodyWriter(inputStream));
其中StreamableBodyWriter
继承自System.ServiceModel.Channels.StreamBodyWriter
并重写OnWriteBodyContents
,将输入流写入消息
这似乎可以在客户端正确地创建消息
,但在服务端,我无法读取消息内容。当我检查消息体时,消息体的两侧看起来如下所示:
<s:Body>... stream ...</s:Body>
。。。流动
但是服务端的Message.IsEmpty
设置为true
有没有办法从服务端的消息正文中获取流?据我所知,您是否试图向正文中添加内容并通过服务读取?正确。我想使用非类型化消息进行流式处理。我的服务合同必须保持非类型化,因为我没有固定的服务合同。我不确定,但我认为您可以向SOAP添加标题,但不能修改正文,这将导致“null”消息。你们试过消息检查器吗?我想得到和消息契约相同的行为,但问题是头部分并没有固定,所以我的想法是自己构造消息对象。我对头并没有问题,或者当我在执行缓冲传输模式时,唯一的问题是如何将流从客户端传递到服务器,反之亦然。我会把北斗七星挖进去,看看能得到什么。