我正在从客户端上传文件到服务器...当服务器程序收到流时,不支持属性Length而且CanSeek变为false,如何寻求可能?如果我在客户端读取它并在消息合同中作为消息头发送但不知道如何寻找,我可以得到长度。想法?
答案 0 :(得分:1)
WCF不是文件传输技术。此外,内部使用StreamFormatter
不支持搜索,因为在分布式应用程序中查找的整个想法是无稽之谈。为了使这项工作正常,内部流必须是网络协议,控制流量不是传输数据。在内部,流只是字节数组。这意味着即使WCF支持寻求你仍然需要在寻找位置之前传输所有数据。
如果您需要恢复功能,您必须自己实现它,方法是手动创建数据块并上传它们并将它们附加到服务器上的文件中。服务器将控制最后正确接收的块并拒绝已经传递的块。 MSDN has sample implementation将此作为自定义渠道使用。
答案 1 :(得分:0)
此处的流示例http://go.microsoft.com/fwlink/?LinkId=150780可以完成您的尝试。
WCF \基本\合同\服务\流\ CS \ Stream.sln
这里解释了样本