I've got 10 WS2016 servers with IIS set up identically on each, with two active applications. Occasionally, immediately after our 2am IIS recycle (configured through the recycling properties page) one of the two applications on a random server will start throwing HTTP 500 errors. The other application will continue serving requests just fine.
What I've worked out though is that it's only one certain request that gets the 500 errors. These requests are coming from our load balancer's monitors every 5 seconds from each of 4 nodes. However, changing the capitalisation on the requests will make them succeed, ie /stuff/appserver.asmx fails, but if I change it to /stuff/AppServer.asmx, or /stuff/appsErvEr.asmx, these will succeed, but the original keeps failing. Regardless of whether it's being sent from the LB or my local machine.
An IISReset fixes the issue every time. Nothing in the httperr logs, event viewer just gives a generic "An unhandled exception has occurred" message. I thought it might have been something to do with overlapping recycling so I set it to TRUE on half of them and FALSE on the others but the error still occurred on both sets of servers. Recycling is definitely happening as I can see both worker processes change their PIDs at 2am. I've enabled Failed Request Tracing but I'm not seeing any useful information in the FRT logs.
Any help appreciated. Thanks.