C# 将大作业导入WCF服务导致超时

C# 将大作业导入WCF服务导致超时,c#,excel,wcf,C#,Excel,Wcf,我有一个大型excel电子表格,需要转换并导入sql server数据库。我使用的是Silverlight前端,它基本上将文件发送到服务读取并导入数据库。目前,浏览电子表格的所有行并将其转换为不同格式并插入数据库大约需要10分钟 UI不可用,并在调用返回之前显示加载状态,但它不可避免地超时 如果我在后台工作线程上处理作业,我是否能够从服务调用返回(作业正在运行),并且我可以告诉用户它正在导入,然后在导入完成时向他们发送电子邮件或其他什么?更好的做法是先将上载的文件保存到某种队列中。队列可以是磁盘

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

UI不可用,并在调用返回之前显示加载状态,但它不可避免地超时


如果我在后台工作线程上处理作业,我是否能够从服务调用返回(作业正在运行),并且我可以告诉用户它正在导入,然后在导入完成时向他们发送电子邮件或其他什么?

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

让WCF服务将上载的文件存储到队列中。从队列中分离服务进程文件。处理完每个文件后,让它将文件标记为已完成


在WCF服务上有一个单独的操作,客户端可以使用该操作轮询文件是否已完成(如果客户端关心的话)

我考虑了第二个服务,不确定我是否有时间实现它,以及这有多困难。它会更简单,因为它的功能会更简单。只需编写一段代码,每5分钟唤醒一次并扫描文件夹的内容。对于文件夹中的每个文件,执行当前在WCF服务中执行的操作。完成文件后,将其删除,这可能是客户端文件完成的标志。好的,是的,这看起来是这种情况下的最佳选择,谢谢。