Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

HttpHandler and XML files

I would like to intercept any request made to the server for XML files. I thought that it might be possible with an HttpHandler. It's coded and it works... on localhost only (?!?!).

So, why is it working on localhost only? Here is my web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <httpHandlers>
      <add verb="*" path="*.xml" type="FooBar.XmlHandler, FooBar" />
    </httpHandlers>
  </system.web>
</configuration>

Here is my C# :

namespace FooBar
{
    public class XmlHandler : IHttpHandler
    {
        public bool IsReusable
        {
            get { return false; }
        }

        public void ProcessRequest(HttpContext context)
        {
            HttpResponse Response = context.Response;
            Response.Write(xmlString);
        }
    }
}

As you might have seen, I'm writing the xmlString directly in the response, it's only temporary because I'm still wondering how I could give the filename instead (that's the second question ;) )

What is supposed to be written in the response is only the xml filename that will be retrieved by a flash app.

Thanks

Details :
Using IIS 6.0 on Windows Server 2003.

Edit :
When calling the page from another computer it looks like it's not getting to the HttpHandler. However, the mapping for IIS have been done correctly.

like image 389
ALOToverflow Avatar asked Mar 11 '26 02:03

ALOToverflow


1 Answers

I don't have an IIS6 server at hand at the moment, but there are two steps required:

  • map the xml extension to ASP.NET (use the executable path from aspx extension): Setting Application Mappings in IIS 6.0
  • tell ASP.NET to use your custom handler: Deploying HTTP Handlers and HTTP Modules

The first step is not obvious because the Visual Studio integrated web server is mapping all requests to ASP.NET.

Other resources:

  • How to: Create Synchronous HTTP Handlers
like image 199
alexandrul Avatar answered Mar 12 '26 17:03

alexandrul