I have a ASP.NET website in which a user makes a request. Every request kicks off a long process that may take several minutes (worst case of 20 mins). At the end of the request a file is created for the user to download.
Currently, I have this request kick off the process asynchronously (using Async pages) but I am getting time out errors. I suspect my approach is flawed. To make this process scalable, my next guess is to have a windows service that executes the long running process. When a user makes a request, I add the request details in a database table. The Win Service picks it up and processes it. In the meantime, the user is redirected to a page that asks them to wait while the file is being created.
Would this be the ideal approach? If so, do I have to refresh the page every x minutes to check if the windows service has completed the processing?