Consider a Web.config
file containing the following httpHandlers
declaration:
<httpHandlers>
<add verb="*" path="*" type="MyWebApp.TotalHandlerFactory"/>
</httpHandlers>
In other words, this handler factory wants to “see” all incoming requests so that it gets a chance to handle them. However, it does not necessarily want to actually handle all of them, only those that fulfill a certain run-time condition:
public sealed class TotalHandlerFactory : IHttpHandlerFactory
{
public IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated)
{
if (some condition is true)
return new MySpecialHttpHandler();
return null;
}
public void ReleaseHandler(IHttpHandler handler) { }
}
However, doing it like this completely overrides the default ASP.NET handler, which means that ASP.NET pages and web services no longer work. I just get a blank page for every URL that doesn’t fulfill the “some condition” in the “if”. Therefore, it seems that returning null
is the wrong thing to do.
So what do I need to return instead so that ASP.NET pages and web services are still handled normally?