【发布时间】:2015-01-08 23:43:42
【问题描述】:
我正在尝试创建一个 Web 服务,它能够从客户端接收文件,对其进行处理(例如打开 txt 文件,以某种方式更改值等),然后将其提供给客户端已处理。
到目前为止,我所做的事情是我有一个服务+主机和客户端的 WinForm 应用程序,它能够选择文件,发送它,然后获取存储在服务和手动下载选定文件的文件列表返回(我使用 WCF 流)。
接下来我需要做的是创建某种队列 - 让服务器的文件下载过程自动化会很好。但也有可能,在服务器设法处理来自客户端的文件之前,客户端可能会(有意或不)离线,因此服务器将无法将文件发回。
我查看了一些手册和教程,发现有一种称为 MSMQ 的内置技术,可以在 WCF 中使用 - 它只是将数据放入队列中,如果客户端/服务器不可用 atm 并尝试稍后发送。 唯一的问题是,在每本手册中,它们仅使用方法(它们将方法调用放入队列中),而不使用文件。
我的问题是 - 是否有可能以某种方式通过文件流实现 MSMQ?还是我应该选择不同的方法?
提前谢谢你
【问题讨论】:
-
您应该尝试将字节数组中的文件发送到 MSMQ 服务。
-
我可以试试,但是 MSMQ 能处理大文件吗?我的同事告诉我,我们将要处理的文件大小可能高达 100MB。
-
队列不是用来处理文件的,它们是用来处理消息的。如果您有 100MB 的消息,那么您做错了。你想做什么,为什么你认为你需要排队?您确定不会将队列与 Dropbox 和 Onedrive 等同步服务混淆吗?
-
我们的目标是在客户端连接并处理文件后立即将处理后的文件发送回客户端。但也许 MSMQ 或队列整体不是好的解决方案 - 我知道有用于消息,我只是想知道它们是否也可以用于文件流:)。