2009-02-17 34 views
5

我目前正在开发一个小项目,我需要通过互联网发送一个潜在的大文件。WCF流媒体服务合同的大小和超时

经过一番辩论之后,我决定使用流选项而不是分块方法。这些文件可能会很大,我不想指定一个确切的上限,2GB也许是4GB,谁知道。

当然,这可能需要很长时间。我再次不想超时。它只要花费时间,无关紧要。

虽然四处寻找不同大小的不同文件,但我慢慢地,一步一步地调整了BasicHttpBinding的属性。我只是想知道,我提出的价值观基本上是好的,还是完全邪恶?

transferMode="Streamed" 
sendTimeout="10675199.02:48:05.4775807" 
receiveTimeout="10675199.02:48:05.4775807" 
openTimeout="10675199.02:48:05.4775807" 
closeTimeout="10675199.02:48:05.4775807" 
maxReceivedMessageSize="9223372036854775807" 

这只是以某种方式感觉不对,这些只是每个底层数据结构的最大可能值。但我不知道还有什么要做。

再说一遍:

这是基本上正确的方法吗?还是我完全误解和误用了这里的框架?

感谢

回答

2

好了,一个更自然的方法可能是将文件发送在中等大小的块的顺序,用最后的消息提交;这也使得从错误中恢复成为可能。对于完全打开的号码,可能存在轻微的DOS问题......

0

当WCF客户端和服务器之间的连接通过VPN时,我已经遇到流式传输的问题。如果有兴趣,请在this thread中阅读更多内容。

如果数据流足够大,可以流式传输超过一分钟 - 发生异常。