2012-08-16 33 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是異步的,它將返回而無需等待自己完成,並且導入將在後臺進行。

現在,您將用戶重定向到定期檢查異步導入狀態的頁面,直到它完成爲止。您還可以通過批處理記錄並相應地更新其他字段來爲此過程添加其他信息,例如進度。

這對我們多年來一直很好。我沒有添加任何真正的細節,因爲這將是特定於您的實施。