ASP.NET recycles a lot of times after software deployment

  • Thread starter Eduardo Crivelli via DotNetMonster.com
  • Start date
E

Eduardo Crivelli via DotNetMonster.com

Hi everybody,

I'm new to this site and regarding the quality of the threads I'm confident
that I will get some help here. Here is the case:

We have a huge asp.net c# (101 bins and more than 4.000 aspx)(.net
framework 1.0, latest sp) internet site in W2K plataform. And since last
week, every time someone deploys new pages or assemblies the site goes
made. It recycles every 10 to 20 minutes until you go and reboot the
machine.

Our deployment time uses this procedure:
- stop WWW.
- execute iisreset.
- clean C:\WINNT\Microsoft.NET\Framework\v1.0.3705\Temporary ASP.NET Files
- make the deploy (xcopy the files).
- start WWW.

Last Friday I managed to understand what was going on, they have misplaced
the files and created copies of the directories in wrong places and I think
..net had a hard time serving this application. However yesterday it started
recycling again and for my total surprise nothing seems to be wrong with
the site.

Our application saves logs in the event viewer like that for each recycle:
Event Type: Warning
Event Source: portal.WEB
Event Category: (200)
Event ID: 111
Date: 12/4/2005
Time: 10:49:00
User: N/A
Computer: CAUDES2KATIX
Description:
<ACALog><LogCategory>AppAudit</LogCategory><Header>ClientApplication -
Application End</Header><EventID>111</EventID><Body><Message>Finalizando
aplica??o:

at App.MCA.Global.Application_End(Object, EventArgs)
at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object,
BindingFlags, Binder, Object[], CultureInfo, Boolean, Assembly, Boolean)
at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object,
BindingFlags, Binder, Object[], CultureInfo, Boolean)
at System.Reflection.RuntimeMethodInfo.Invoke(Object, BindingFlags,
Binder, Object[], CultureInfo)
at System.Web.HttpApplication.ProcessSpecialRequest(HttpContext,
MethodInfo, Int32, Object, EventArgs, HttpSessionState)
at System.Web.HttpApplicationFactory.FireApplicationOnEnd()
at System.Web.HttpApplicationFactory.Dispose()
at System.Web.HttpRuntime.Dispose()
at System.Web.HttpRuntime.ReleaseResourcesAndUnloadAppDomain(Object)
</Message><Src>Global.Application_End</Src><contextItems
/></Body><Severity>2</Severity><MachineName>CAUDES2KATIX</MachineName><DateTime>12/4/2005
10:49:00</DateTime></ACALog>

Microsoft say that when you get ReleaseResourcesAndUnloadAppDomain() is
because you have changed something on the application's directory (bins,
web.config, machine.config, etc) and this is asp.net way to week itself up-
to-date.

We were supposed to get just one recycle per deployment and we are getting
more than 20!

I thank any idea you can give me.

Eddie
 
K

Karl Seguin

A shot in the dark, take a look at:
http://www.aspnetresources.com/articles/debug_code_in_production.aspx

and take a long hard read at
"Maximum Number Of Recompiles"
and
"Maximum Number Of Pages Per Batch Compilation"

You might want to increase both amounts, because by default, after 15
recompiles, ASP.Net will recycle...and if you have 4 000 aspxs, assuming
they are all in the same folder, that's atleast 4 recompiles..if they aren't
in the same folder, simply JIT'ing all aSPX files is likely enough to go
over the 15 recompile treashold and cause the app to restart..


btw...101 bins and 4000 aspx pages..likely needs some rearchitecturing...

Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/ - New and Improved (yes, the popup is
annoying)
http://www.openmymind.net/faq.aspx - unofficial newsgroup FAQ (more to
come!)
Eduardo Crivelli via DotNetMonster.com said:
Hi everybody,

I'm new to this site and regarding the quality of the threads I'm confident
that I will get some help here. Here is the case:

We have a huge asp.net c# (101 bins and more than 4.000 aspx)(.net
framework 1.0, latest sp) internet site in W2K plataform. And since last
week, every time someone deploys new pages or assemblies the site goes
made. It recycles every 10 to 20 minutes until you go and reboot the
machine.

Our deployment time uses this procedure:
- stop WWW.
- execute iisreset.
- clean C:\WINNT\Microsoft.NET\Framework\v1.0.3705\Temporary ASP.NET Files
- make the deploy (xcopy the files).
- start WWW.

Last Friday I managed to understand what was going on, they have misplaced
the files and created copies of the directories in wrong places and I think
.net had a hard time serving this application. However yesterday it started
recycling again and for my total surprise nothing seems to be wrong with
the site.

Our application saves logs in the event viewer like that for each recycle:
Event Type: Warning
Event Source: portal.WEB
Event Category: (200)
Event ID: 111
Date: 12/4/2005
Time: 10:49:00
User: N/A
Computer: CAUDES2KATIX
Description:
<ACALog><LogCategory>AppAudit</LogCategory><Header>ClientApplication -
Application End</Header><EventID>111</EventID><Body><Message>Finalizando
aplica??o:

at App.MCA.Global.Application_End(Object, EventArgs)
at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object,
BindingFlags, Binder, Object[], CultureInfo, Boolean, Assembly, Boolean)
at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object,
BindingFlags, Binder, Object[], CultureInfo, Boolean)
at System.Reflection.RuntimeMethodInfo.Invoke(Object, BindingFlags,
Binder, Object[], CultureInfo)
at System.Web.HttpApplication.ProcessSpecialRequest(HttpContext,
MethodInfo, Int32, Object, EventArgs, HttpSessionState)
at System.Web.HttpApplicationFactory.FireApplicationOnEnd()
at System.Web.HttpApplicationFactory.Dispose()
at System.Web.HttpRuntime.Dispose()
at System.Web.HttpRuntime.ReleaseResourcesAndUnloadAppDomain(Object)
</Message><Src>Global.Application_End</Src><contextItems
 
E

Eduardo Crivelli via DotNetMonster.com

Hi Karl,

thanks for your post.

I've already checked this link and had altered the web.config with this
line(<compilation defaultLanguage="c#" debug="false" />).

I need to give you more information about our set.
We have more than 4.000 aspx distributed into 15 directories plus one for
binaries ("\bin"). Each directory helds pages related to one business and
most of the time you need to combine features from pages from different
directories to acomplish one task. That's why he have such a huge
application (it's the intranet from some company).

When we deploy it, the content can be placed into any combination of
directories(e.g. deploy DirA, DirB and DirE; deploy just DirF; etc).

Some deploys, depending on the directories affected, contain more than 15
assemblies and in that case "Maximum Number Of Pages Per Batch Compilation"
could play a role in the problem we have. Even though I don't think that is
the case because he recycle aspnet before we deploy everything (that
procedure from the begining of the thread), for us is always as first
deployment. :(

Thanks anyway.
 

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,755
Messages
2,569,534
Members
45,007
Latest member
obedient dusk

Latest Threads

Top