Recently we want to cater the slow loading problem of IIS for first request, after I did some research, I've found that IIS7.5+ has a feature named "Application Initialization" which maybe what I need.
However I have to understand the mechanism before I try to apply it and here is my understanding:
With default IIS setting:
- The application pool idle after 20 minutes
- The corresponding worker process is killed
- First request comes in
- IIS starts to create a new worker process
- IIS starts to load the application
- The client can see after application is loaded
And step 4, 5 makes first request not so responsive.
With Application Initialization set:
- The application pool idle after 20 minutes
- The corresponding worker process is killed
- IIS starts to create a new worker process
- IIS starts to load the application through a "fake" request
- First request comes in
- The client can see after application is loaded
Now the first request is responsive as indeed it is not the first request to the server, sometimes before there was a "fake" request which kicks loading of the application.
What I would like to know is that:
Is my understanding correct?
When application initialization is set, the worker process is still being killed, but a new one is created right after it, is it the case?