no sane person will cache an entire control, it just doesn't makes sense, they should trow an exception if someone is trying to push a Control in Cache, how is that for a fix?
we now have .NET source code you could debug and see what's up
Like I said, its certainly the HtmlAnchor's design, it calls into an internal helper function from the generic html control base which handles resolving the urls, it also removes the given attribute (its generically given an attribute name vs knowing to
look for href) from the attribute collection..
I've gotta be honest its some of the weirdest code I've seen in some time, might add it to my scrap book of piss-poor code inside the .NET framework.. find it quite a lot in System.Web.