[This is preliminary documentation and subject to change]
In dedicated application mode, IIS can be configured to periodically restart worker processes in an application pool, allowing you precise management of those that are faulty. This ensures that specified applications in those pools remain healthy, and that system resources can be recovered. Applications can be restarted based on elapsed and scheduled times, number of requests served, response to a ping, virtual memory usage, and on demand. To recycle a worker process, the faulty worker process is spun down until it completes processing all remaining requests it has stored in the request queue. The process is given a configured time to drain its current requests. Simultaneously, WAS creates a replacement worker process for the same namespace group, and the new worker process is started before the old worker process stops. This prevents service interruptions. The old process remains in communication with the kernel-mode driver to complete its outstanding requests, then shuts down normally or is explicitly terminated if it does not shut down after a configurable time limit.