While working on a client's site, I used an http handler to call a very well thought-out image resizing class I found via CodeProject. I removed the ability to use named keys (lines 42, 51-62, & 276-336), opting instead for controlling width and/or height explicitly. Since it's a .NET 2.0 app, the Linq code in GetImageDimensions would have had to go anyway. I didn't realize how much I've come to love LINQ until I went back to write some new SQL code for this project… Also, I removed the dimension check that was preventing the image from being upscaled-I needed it to work both ways (lines 239-246).
With the code in place, the image resizing worked great. The images resized properly, but after attempting to use a management app located in a subdirectory, I realized that the custom http handlers were being inherited by all of the children, causing all sorts of trouble. Since one of the apps is a virtual directory controlled by the webhost, editing the individual web.config files wasn't possible. I guess the ASP.NET team had run across this before, because they created the location tag and its inheritInChildApplications attribute.
My first attempt to wrap only the httphandlers section didn't work, but wrapping the entire system.web section did the trick (turns out, this is a bug in .Net 2.0 which Microsoft has said will not be fixed). Now, all of the sub apps are working well where they're at, and the images are resizing perfectly.