views:

412

answers:

1

I have an issue with a long-running page. ASP.NET page takes about 20 minutes to get generated and served to the browser.

Server successfully completes the response (according to logs and ASP.NET web trace) and I assume sends it to the browser. However, browser never recieves the page. It (IE8 & Firefox 3 both) keeps spinning and spinning (I've let it run for several hours, nothing happens).

This issue only appears on the shared host server. When I run the same app on dev machine or internal server, everything works fine.

I've tried fiddler and packet sniffing and it looks like server doesn't send anything back. It doesn't even send keep-alive packets. Yet both browsers I've tried don't time out after pre-defined timeout period (1 hour in IE I believe, not sure what it is in Firefox).

The last packet server sends back is ACK to the POST from the browser.

I've tried this from different client machines, to ensure it's not a broken configuration on my machine.

How can I futher diagnose this problem? Why doesn't browser time-out, even though there're no keep-alive packets?

p.s. server is Windows 2003, so IIS6. It used to work fine on shared hosting, but they've changed something (when they moved to new location) and it broke. Trying to figure out what.

p.p.s. I know I can change page design to avoid page taking this long to get served. I will do this, but I would also like to find the cause of this problem. I'd like to stay focused on this issue and avoid possible alternative designs for the page (using AJAX or whatever else).

+2  A: 

Check the server's connection timeout (on the Web Site properties page).

A better approach would be to send the request, start the calculation on the server, and serve a page with a Javascript timer that keeps sending requests to itself. Upon post-back, this page checks whether the server process has completed. While the process is still running, it responds with another timer. Once it has completed, it redirects to the results.

cdonner