5

我目前正在做一个小项目,我需要通过互联网发送一个可能很大的文件。

经过一番辩论,我决定使用流选项而不是分块方法。这些文件可能非常大,我真的不想指定一个确切的上限,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"

这在某种程度上感觉不对,这些只是每个底层数据结构的最大可能值。但我不知道还能做什么。

再说一遍:

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

谢谢

4

2 回答 2

2

好吧,一种更自然的方法可能是按顺序以中等大小的块发送文件,最后提交一条消息;这也使得从错误中恢复成为可能。完全开放的数字可能存在轻微的 DOS 问题...

于 2009-02-17T23:33:04.427 回答
0

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

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

于 2010-01-21T20:10:56.077 回答