Did you know? Custom Http Handlers and IIS vs ASP.NET Development Server

While developing in Visual Studio using the ASP.NET Development Server, all your requests are handled by the asp.net handler.  So when you're playing with things like url redirection or custom handlers, it will work fine while you're developing. But when you deploy it to IIS, you need to add the handler for the extension so IIS knows that ASP.NET is processing the request.

I just ran into this while building an image handler for custom_folder/*.jpg.  I wanted all requests for jpg files here to be handled by my custom handler.  My IIS Server wasn't responding properly because it wasn't configured to pass that request to asp.net. Unfortunately, I'm working with a shared hosting environment and Medium Trust, so I have to change this to something that is handled by asp.net by default like *.ashx, aspx, etc.

In a full trust environment where you have acess to the IIS server, you can add a new ISAPI handler for any extension you want to override in asp.net. Just go to the application configuration for the website or virtual directory and add a new ISAPI filter for your extension.  When adding a new extension filter, point it to the same path as the other asp.net ISAPI handlers. If you want it to just handle for a single folder, it might be a good idea to set it up as its own virtual directory with a filter for that virtual directory alone. This will allow asp.net to handle the requests for that file type, then you can use your custom handler as you normally would in the development environment.

If anyone is interested, I can provided more information.