I am building a SOAP server using ATL for hosting in IIS 5. I want to run a single instanace of the process which all clients connect to (but from potentialy different threads). I want want my process to remain in memory as there is a large ammount of shared read only data which I want to keep a single instance in memory as reloading and computing it would be expensive. I am using an application protection setting of low. So far I've noticed that IIS does not seem to unload my process. Is there anything that could cause it to be unloaded and is there anything I can do to control this behaviour ?