I think you have understood that it will take a long time to process. The problem if I am correct is how to make the user wait for the result? My suggestion would be to decouple the processing and the status reporting. So, the once the file is submitted by the user, 1. Save the file to disk, save the location to a queue table and tell the user that the application is processing his file. 2. On the server, write a service to read that queue table periodically and process the file. You could use fire and forget threads here. 3. The service would write some progress update to a progress table. 4. The status page shown to the user can read this progress table with the file id as the filter. You could also expose a web service to check on status of a file Shreekar