c#使用Web服务传输大量数据

时间:2013-01-16 07:26:20

标签: c# web-services

我需要使用网络服务转移 1 GB 。我认为使用msmq进行分段传输。也许有办法轻松一点?

3 个答案:

答案 0 :(得分:2)

如果您可以在较小的块中打破数据,那么就这样做。 Web服务并不是为了一次性传输那么多数据而设计的,所以尽管可能,但这将是一个颠簸的旅程。

但世界并没有以有效的方式发挥作用,所以这就是你所做的:

将数据作为二进制文件写入本地文件。  2.创建一个使用流读取器写入Web服务的流写器,以从文件中读取。  3.如果发生任何事情,请捕获异常并尝试从文件指针所在的位置继续。  4.如果您可以修改Web服务,请让它读取数据并写入二进制文件,捕获任何错误并尝试将恢复时的任何新数据写入当前指针的文件。

诀窍是弄清楚如何告诉服务你正在尝试恢复被中断的请求。

如果不清楚,我会尝试扩展一些。

答案 1 :(得分:0)

  

我需要使用网络服务传输1 GB。我认为使用msmq进行分段传输。

我想用汽车运送人。我想到使用飞机。

得到它? Web服务或MSMQ。他们没有神奇地混合。

这就是说:Web服务,提供数据=糟糕的主意。即使是JSON也有开销。尖叫,非流媒体?这是一个很多开放变量,在大多数情况下,这里的Web服务相对来说没什么意义。

向上(发送到服务)或向下(向服务)?更多问题 - 我真的不希望1gb上传到网络服务。

如果必须,拼接数据并制作api以询问所有“部件”然后逐个部分 - 这也允许显示进度条。由于运输过程中可能发生的故障,您的软件必须处理部件的重新请求。

如果数据是二进制的并且只是使用REST api,我会认真考虑不使用Web服务,至少对于下载而言。也可能上传。很多东西取决于你甚至不知道如何要求或者没有理由描述的所有东西。

答案 2 :(得分:0)

你可以先做一些服务,先在目的地下一个分割数据中创建缓冲区,然后通过服务发送,然后最终确定。