When a page is taking a long time to process in IIS, all other page requests coming in are delayed until the first one either times out, or responds.

This was brought to light by a 3rd party API having high response times. However, I can duplicate the issue by putting a Sleep in any page.

We are using DNN version 7.0.6

For Example:

The page http://www.website.com/foo.aspx has the code System.Threading.Thread.Sleep(10000); in the Page_Load.

While this page is sleeping, http://www.website.com/bar.aspx is requested. Bar.aspx (a page that usually responds right away) will not respond until foo.aspx has completed it's request.

From IIS Logs, you can see this process:

#Fields: date time cs-uri-stem sc-status sc-substatus sc-win32-status time-taken
2016-08-24 19:44:20 /bar.aspx 200 0 0 69
2016-08-24 19:44:24 /foo.aspx 200 0 0 10053
2016-08-24 19:44:24 /bar.aspx 200 0 0 9204
2016-08-24 19:44:26 /bar.aspx 200 0 0 91

I have tried adding additional worker processes, and the problem still exists.

I feel like I'm missing something simple. Am I just overlooking some fundamental way IIS or DNN works? Can anything be done to prevent this from happening?

Related posts

Recent Viewed