Application Pool recycling hangs

W

Wayne Smith

Hi,

We are having a few problems with ASP.Net pages hanging during load when an
Application Pool is recycled. To test this we have setup the following
ASP.net page which refreshes every 2 seconds:

<%@ Page language="c#" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>

<script runat="server">
void Page_Load(Object sender, System.EventArgs e)
{
Label1.Text = DateTime.Now.ToString();
StreamWriter SW;
SW=File.AppendText("c:/inetpub/wwwroot/log1.txt");
SW.WriteLine(DateTime.Now);
SW.Close();
}
</script>

<html>
<head>
<title>Cache Test</title>
<meta http-equiv="refresh" content="2">
</head>
<body>

<form runat="server">
<asp:label id="Label1" runat="server" />
</form>
</body>
</html>

I've also set the Application Pool that the site runs under in IIS 6.0 to
Recycle every 1 minute (and set the Idle Timeout on the Performance tab to 1
minute).

The page seems to refresh ok for a while in the browser each 2 seconds but
sometimes when the Application Pool recycles the page load hangs for over
one minute and will eventually start going again. On another machine however
it runs continuously without hanging.

Does anyone have an idea as to what the hanging might be caused by?

Thanks - Wayne.
 
D

David Wang [Msft]

Application Pool recycling is overlapping by default.

If your app shares resources, make sure it works with this potential
"concurrency".

--
//David
IIS
http://blogs.msdn.com/David.Wang
This posting is provided "AS IS" with no warranties, and confers no rights.
//
 
W

Wayne Smith

Even with the application pool set to recycle every 1900 minutes we were
getting this issue of the page load hanging....
 
D

David Wang [Msft]

Can you explain why changing recycling period will have any effect in your
scenario?


Remove the StreamWriter and File.AppendText() calls and see if it still
hangs.

If it stops hanging, you have a concurrency issue with the code you wrote.
One way to address this is to turn off overlapping recycle, where IIS waits
for the old process to terminate (and release its shared resource) before
starting the new process to execute (and re-use the shared resource).

--
//David
IIS
http://blogs.msdn.com/David.Wang
This posting is provided "AS IS" with no warranties, and confers no rights.
//
 
W

Wayne Smith

Ok - i've found how to disable the overlapping recycle which I've done but
it still seems to hang. It didn't stop either when I removed the
StreamWriter and File.AppendText() calls.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,186
Members
46,742
Latest member
AshliMayer

Latest Threads

Top