How do I exclude things that match the specified path for an HttpHandler in ASP.Net?
I know that if I want to have requests for MyPage.aspx go to the class called MyHandler in the assembly called MyAssembly, I can add this to my web.config file:
<configuration> <system.web> <httpHandlers> <add verb="*" path="MyPage.aspx" type="MyHandler, MyAssembly"/> </system.web> </configuration>
This works for any MyPage.aspx at the (made up) URL: www.mycoolsite.com/MyProject/[SomePathHere]/MyPage.aspx
What if I want to do it for every MyPage.aspx except www.mycoolsite.com/MyProject/NoHandler/MyPage.aspx
Is there a way to exclude that path from the handler?
You can put a web.config in the NoHandler folder that defines a different handler (NotFound if you want to server a 404 style, etc). Same format as your current web.config, just put only the elements you want to override like the handler.
Here's an example if you want to override with a 404 in that directory:
<configuration> <system.web> <httpHandlers> <remove verb="*" path="MyPage.aspx" type="MyHandler, MyAssembly"/> <add verb="*" path="MyPage.aspx" type="MySpecialHandler, MyAssembly"/> </httpHandlers> </system.web> </configuration>