I have an ASP.NET MVC website that gets about 6500 hits a day, on a shared hosting platform at Server Intellect. I keep seeing app restarts in the logs and I cannot figure out why.
I've read Scott Gu's article here: http://weblogs.asp.net/scottgu/archive/2005/12/14/433194.aspx
and implemented the technique, and here's what shows up in my log:
Application Shutdown:
_shutDownMessage=HostingEnvironment initiated shutdown
HostingEnvironment caused shutdown
_shutDownStack=at
System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at
System.Environment.get_StackTrace() at
System.Web.Hosting.HostingEnvironment.InitiateShutdownInternal() at
System.Web.Hosting.HostingEnvironment.InitiateShutdown() at
System.Web.Hosting.PipelineRuntime.StopProcessing()
It seems to occur about every five minutes.
Are there any other ways to debug this?
UPDATE: Here are the application pool settings mentioned by Softion:
CPU
- Limit : 0
- Limit Action : no action
- Limit Interval : 5 Minutes
Process Model
- Idle Timeout : 20 Minutes
- Ping Maximum Response Time : 90 Seconds
- Startup Time Limit : 90 Seconds
Rapid-Fail Protection
- Enabled : True
- Failure Interval : 5 Minutes
Recycling
- Private Memory Limit : 100 MB
- Regular Time Interval : 1740 Minutes (29 Hours)
- Request Limit : 0
- Specific Times : none
- Virtual Memory Limit : 0
Best Answer
You can easily grab the reason of the shutdown by HostingEnvironment. You read Scott Gu article, but you missed its comments.
If the reason is HostingEnvironment, check the IIS application pool parameters controlling recycling. I've put a red dot near each one. Check the description in the bottom help box in your own copy for full info.
You can ask your provider to give you the applicationHost.config file where all these parameters are set. They find it in C:\Windows\System32\inetsrv\config. I'm sure you can also get them using some .NET api.
For 6500 hits a day, which is a very low hit rate, i'm betting the "Idle time-out" is set to 5mn.
Update (moved comments to here //jgauffin)