First of all, you should keep track of what is really happening. In such situations, my first tool is always WinDbg.
http://www.windbg.org/
http://en.wikipedia.org/wiki/WinDbg
To use it with managed / .NET code, you need to use the SOS (Son of Strike) extension:
http://msdn.microsoft.com/en-us/library/bb190764.aspx
http://blogs.msdn.com/b/johan/archive/2007/11/13/getting-started-with-windbg-part-i.aspx
, WinDbg w3wp.exe, , , , :
!dumpheap -stat
"" , , , .
(LOH) - , , , . . , - , . , , 85000 , " ". , , , , , , .. ..
, windbg , LOH:
!dumpheap -stat -min 85000
, . , , MyClass [].
: , , (, ), , , . / , .
, - SOS:
http://windbg.info/doc/1-common-cmds.html
http://windbg.info/doc/2-windbg-a-z.html
Fun:
:
bp clr!SVR::gc_heap::allocate_large_object "!CLRStack; g;"
, CLR , , .