【发布时间】:2011-06-23 21:20:53
【问题描述】:
我正在将文件从客户端上传到服务器...当服务器程序接收到流时,不支持属性 Length 并且 CanSeek 为 false,如何进行查找?如果我在客户端读取它并在消息合同中作为消息头发送但不知道如何查找,我可以获得长度。想法??
【问题讨论】:
我正在将文件从客户端上传到服务器...当服务器程序接收到流时,不支持属性 Length 并且 CanSeek 为 false,如何进行查找?如果我在客户端读取它并在消息合同中作为消息头发送但不知道如何查找,我可以获得长度。想法??
【问题讨论】:
WCF 不是文件传输技术。此外,内部使用的StreamFormatter 不支持搜索,因为在分布式应用程序中搜索的整个想法是无稽之谈。为了使这项工作正常工作,内部流必须是网络协议,控制流对传输的数据不是。在内部,流只是字节数组。这意味着即使 WCF 支持查找,您仍然需要在查找位置之前传输所有数据。
如果您需要恢复功能,您必须自己实现它,方法是手动创建数据块并上传它们并将它们附加到服务器上的文件中。服务器将控制最后正确接收的块并拒绝已经通过的块。 MSDN has sample implementation 将其用作自定义频道。
【讨论】:
http://go.microsoft.com/fwlink/?LinkId=150780 此处的流示例可以满足您的要求。
WCF\Basic\Contract\Service\Stream\CS\Stream.sln
这里解释了示例
【讨论】: