Just some more info. Regarding Weak References if anything calls GC.Collect() all weak references get wiped.
ASP Cache calls GC.Collect when it is low on memory. If anyone is interested I can post the Cache memory code when it is finshed . Ben Forces garbage collection of all generations. [Visual Basic] Overloads Public Shared Sub Collect() [C#] public static void Collect(); [C++] public: static void Collect(); [JScript] public static function Collect(); Remarks Use this method to attempt to reclaim all memory that is inaccessible. However, the Collect method does not guarantee that all inaccessible memory is reclaimed. All objects, regardless of how long they have been in memory, are considered for collection; however, objects that are referenced in managed code are not collected. Use this method to force the system to attempt to reclaim the maximum amount of available memory. You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.