0

我正在将文件从客户端上传到服务器...当服务器程序接收到流时,不支持属性 Length 并且 CanSeek 为假,如何进行搜索?如果我在客户端读取它并在消息合同中作为消息头发送但不知道如何查找,我可以获得长度。想法??

4

2 回答 2

1

WCF 不是文件传输技术。此外,内部使用不支持StreamFormatterseek,因为分布式应用程序中seek的整个想法是无稽之谈。为了使这项工作正常工作,内部流必须是网络协议,控制流对传输的数据不是。在内部,流只是字节数组。这意味着即使 WCF 支持搜索,您仍然需要在搜索位置之前传输所有数据。

如果您需要恢复功能,您必须自己实现它,方法是手动创建数据块并上传它们并将它们附加到服务器上的文件中。服务器将控制最后正确接收的块并拒绝已经通过的块。MSDN 有使用此作为自定义通道的示例实现。

于 2011-06-24T07:56:23.893 回答
0

此处的流示例http://go.microsoft.com/fwlink/?LinkId=150780 可以满足您的要求。

WCF\Basic\Contract\Service\Stream\CS\Stream.sln

示例在这里解释

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

于 2011-06-23T22:33:19.020 回答