ServerIdentity memory leak with IHttpAsyncHandler
- by Anton
I have a .NET web application that consists of a single HTTP handler class that implements IHttpAsyncHandler. All requests to this handler are handled asynchronously, though some requests are short-lived and some are long-lived (nothing over a few seconds).
The problem is that memory consumption grows over time as requests are handled. All profiling results point to an unbounded growth of String objects held by instances of System.Runtime.Remoting.ServerIdentity. Every String value is different, but they all look similar to:
/dd41c00e_1566_4702_b660_c81cdea18a43/vigefresi5pfv8n0ekddg57z_1154.rem
There is nothing in my application that uses ServerIdentity directly, and unless I am mistaken, the ServerIdentity instances are proportional to the number of incoming requests.
If this is an internal .NET structure, it looks like the CLR is not cleaning up after itself. What could be causing the leak?
UPDATE A little less than half of the String objects are being held by System.Runtime.Remoting. The remaining String objects are being held by System.Runtime.Serialization and look similar to:
+1sgess5rjcrgbmp3kqr6bmv_3474.rem
Also, the problem only seems to occur when lots of simultaneous HTTP web requests arrive.