views:

111

answers:

1

I have an ASP.Net application running under IIS 6. A simple page has two radio buttons and a submit button. If I select radio button "A" and submit the page, a lengthy PDF file is generated, which takes about a minute to build. If I select radio button "B", a small PDF is generated. (In both cases the PDF is written out to the Response object and it opens in my browser.)

If I select radio button "A" and submit, then hit the red X in my browser to stop the current request, then select radio button "B" and resubmit, the page still takes a long time to process my request.

No doubt my first request is still being processed on the server, but I was wondering how IIS and/or ASP.Net are queuing my requests so that fair server use is guaranteed among all users. Am I roughly correct in assuming something like this happens, and if so, how is it done?

+1  A: 

You're probably experiencing session locking. Try running your experiment in multiple browsers, i.e. instead of stopping the browser and resubmitting, fire both requests in separate browsers (e.g. Firefox and Chrome) which will use separate session and therefore will not block.

See Concurrent Requests and Session State for rationale and workarounds.

Mauricio Scheffer
Thanks for the article. Makes sense now.
larryq