When you perform a background batch compile, the compile may cause the Aspnet_wp.exe process to deadlock if all the worker threads are used. When you set the process model to
maxWorkerThreads = 20, and then when the number of running Aspnet_wp.exe threads also equals 20, all 20 worker threads wait for a
ManualResetEvent to be signaled. A
WaitCallback (BatchCompileDirectory) function that cannot run until there is a free thread signals the event. A free thread never occurs. Use all the threads in the thread pool, and then generate a situation that requires a batch compile to simulate this scenario.
You may see the following event logged in the Application log of the Event Viewer:
Event ID: 1003:
Description: Aspnet_wp.exe (PID: <xxx>) was recycled because it was suspected to be in a deadlocked state. It did not send any responses for pending requests in the last 180 seconds.