WCF服务的大型导入作业导致超时

时间:2014-11-06 01:35:39

标签: c# excel wcf

我有一个很大的Excel电子表格,我需要将其转换并导入到sql server数据库中。我正在使用Silverlight前端,它基本上将文件发送到服务以读取并导入到数据库中。目前,通过电子表格的所有行并将它们转换为不同的格式并插入数据库大约需要10分钟。

UI无法使用并显示加载状态,直到调用返回但不可避免地超时。

如果我在后台工作线程处理作业,我将能够从服务调用返回(当作业正在运行时),我可以告诉用户它正在导入,然后在它发送时通过电子邮件发送它们完成了什么?

1 个答案:

答案 0 :(得分:1)

更好的举措是首先将上传的文件保存到某种队列中。队列可以是磁盘上的文件夹,也可以是数据库中的行。

让WCF服务将上传的文件存储到队列中。从队列中获取单独的服务进程文件。完成每个文件后,让它将文件标记为完成。

对WCF服务进行单独操作,客户端可以使用该操作来轮询文件是否已完成(如果客户端关心)。