I have a web site that is throwing OutOfMemoryExceptions on whenever it gets to the following spot in my code:
XmlSerializer xs = new XmlSerializer(t, xoverrides
The OutOfMemoryException is not caused by the objects being serialized, but instead it is a result of the construction of the XmlSerializer objects. When an XmlSerializer is created, an assembly is dynamically generated and loaded into the AppDomain. These assemblies cannot be garbage collected until their AppDomain is unloaded, which in your case is never. Depending on the XmlSerializer constructor being used, each and every XmlSerializer constructed will dynamically generate a new assembly. Over time, these assemblies will consume all available memory.
There are a couple of solutions:
Microsoft KB : Memory usage is high when you create several XmlSerializer objects in ASP.NET
If I recall from similar problems a while back, the XmlSerializer needs a ton of memory more than the data its processing. I'm not sure why this is the case though.