Accessing original URL in IIS7 404 redirect page

I have an .aspx page as my custom 404 page on a site set up on IIS 7. I need to retrieve the original URL that the user was trying to access in order to do some processing on the 404 page. The trick is that I need to specifically handle 404’s that do not contain a .aspx extension (e.g http://example.com/testurl), which do not get routed through ASP.NET’s custom errors section. I can configure IIS to point to my custom 404, but at that point I do not know how to get my original URL? Does anyone know if this is possible?

QueryString malformed after URLDecode

I’m trying to pass in a Base64 string into a C#.Net web application via the QueryString. When the string arrives the “+” (plus) sign is being replaced by a space. It appears that the automatic URLDecode process is doing this. I have no control over what is being passed via the QueryString. Is there any way to handle this server side?