PNG image and Response.Output Stream
Me and my team have got some trouble why the image does not cache and appearing when we use httplistener as intermediary, while the cache header is already added.
The reason is not because cache or something wrong in your code, but it's because PNG handle differently.
and when you are outputing through stream ,Their encoder requires a bi-directional stream.
So put the Bitmap image on memory stream first , then You write to your Response.OutputStream
It works like a charm.
Details Below
http://www.west-wind.com/Weblog/posts/6008.aspx