2012-08-16 50 views
1

我的应用程序允许用户上传处理过的CSV文件,并将记录写入数据库。但是这个文件可以包含大量的记录,例如300 000.在这种情况下,它可能需要长达半个小时才能处理所有这些记录,我希望我的应用程序不要在这段时间内冻结页面,但显示进度和可能的一些错误,或者允许用户移动到另一个页面并且不时返回到检查过程会更好。 通过什么方法可以实现?如何在asp.net中处理大文本文件

+0

而有趣的标记有不工作的链接评论。 @Abhijeetchindhe请修复您的链接。 – ChrisBint 2012-08-16 07:55:40

+0

对不起! – Abhijeetchindhe 2012-08-16 11:39:27

回答

0

我们解决类似问题的方法如下:

使用普通的http方法上传文件。

本地保存文件。

将文件提交给异步web服务(.asmx)。此过程将插入一条记录,该记录将存储导入的状态以及实际开始导入记录。所有记录处理完毕后,相应地设置状态。

这一切都发生在一个单一的流程。由于WebMethod是异步的,它将返回而无需等待自己完成,并且导入将在后台进行。

现在,您将用户重定向到定期检查异步导入状态的页面,直到它完成为止。您还可以通过批处理记录并相应地更新其他字段来为此过程添加其他信息,例如进度。

这对我们多年来一直很好。我没有添加任何真正的细节,因为这将是特定于您的实施。