我需要使用网络服务传输1 GB 。我认为使用 msmq 分段传输。也许有一种方法可以轻松一点?
3 回答
如果您可以将数据分成更小的块,那么就这样做。Web 服务的设计目的不是一次性传输那么多数据,所以即使有可能,也将是一段坎坷的旅程。
但是这个世界并没有以一种有效的方式运作,所以这就是你要做的:
将数据以二进制形式写入本地文件。2. 创建一个流写入器,它使用流读取器从文件中读取数据并写入您的 Web 服务。3. 如果发生任何事情,捕获异常并尝试从文件指针所在的位置恢复。4. 如果您可以修改 web 服务,让它读取数据并写入二进制文件,捕获任何错误并尝试在当前指针处将恢复时的任何新数据写入文件。
诀窍是弄清楚如何告诉服务您正在尝试恢复中断的请求。
如果不清楚,我会尝试扩展更多。
我需要使用网络服务传输 1 GB。我认为使用 msmq 分段传输。
我想用汽车运送人。我想用飞机。
得到它?Web 服务或 MSMQ。它们不会神奇地混合。
那说:Web 服务,alrge 数据 = 坏主意。甚至 JSON 也有开销。流媒体,非流媒体?这是很多开放变量,在大多数情况下,这里的 Web 服务意义不大。
向上(发送到服务)还是向下(发送到服务)?更多问题 - 我真的不希望将 1gb 上传到网络服务。
如果必须,拼接数据并制作一个 api 来询问所有“部分”,然后逐部分获取 - 这也允许显示进度条。由于运输过程中可能发生的故障,您的软件必须处理对零件的重新请求。
如果数据是二进制的并且只使用 REST api,我会认真考虑不在这里使用 Web 服务,至少用于下载。也可能用于上传。很多事情取决于你甚至不知道如何要求或懒得描述的所有东西。
您可以使一些服务首先在目标下一个拆分数据中创建缓冲区并通过服务发送它,然后完成它。