我目前正在开展一个小项目,我需要通过互联网发送一个可能很大的文件。
经过一番辩论后,我决定选择流媒体选项,而不是采用分块方法。文件可能非常大,我真的不想指定一个确切的上限,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"
这只是感觉不对,这些只是每个底层数据结构的最大可能值。但我不知道还能做什么。
再次:
这基本上是正确的方法吗?或者我在这里完全误解和滥用框架?
由于
答案 0 :(得分:2)
嗯,更自然的方法可能是以中型块的顺序发送文件,并提交最终消息;这也可以从错误中恢复。完全开放的数字可能存在轻微的DOS问题......
答案 1 :(得分:0)
当WCF客户端和服务器之间的连接通过VPN时,我已经遇到了流式传输问题。如果有兴趣,请阅读this thread中的更多内容。
如果流足够大,可以流式传输超过一分钟 - 会发生异常。