I have a 64-bit ASP.Net 4.5 web application running in IIS 8.5. We've been doing performance testing using JMeter, and when we simulate more than 15 or so users, we start to see appdomain restarts, usually 5 or more in a 45 minute test.
The app pool itself is not recycling, just the appdomain. We also have turned off all memory limits in the app pool and anything that might cause an app pool recycle.
Using Scott Guthrie's logging method, we see the following:
_shutDownMessage=IIS configuration change 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.PipelineRuntime.StopProcessing()
Using health monitor, we get essentially the same result: Event message: Application is shutting down. Reason: Configuration changed.
I've used Process Monitor and verified there are no changes to our web.config, global.asax, bin folder, App_Data folder, no directories are being deleted, none of the other *.config files are being modified. Nothing looks suspicious. We've turned on IIS Configuration auditing in the event log and while I can see actual changes that I make, I see no events logged near the time of the restarts. We've even set fcnMode to Disabled in our web.config and also in the registry. We have no anti-virus running on the system, and even if we did, I would think Process Monitor would pick up any activity.
Then I did some ETW tracing, and before every appdomain restart, we get the following:
Event Name: IISGeneral Event Type: CONFIG_CHANGE_NOTIFICATION UserData: MACHINE/WEBROOT/APPHOST/OURSITENAME
So what could make IIS report that there was a configuration change if no configuration files were changed and nothing got logged in the IIS configuration audit?