如何在ASP.Net中排除与HttpHandler的指定路径匹配的内容?

Tim*_*man 2 c# asp.net httphandler

我知道如果我想要MyPage.aspx请求转到名为MyAssembly的程序集中名为MyHandler的类,我可以将它添加到我的web.config文件中:

<configuration>
  <system.web>
    <httpHandlers>
      <add verb="*" path="MyPage.aspx" type="MyHandler, MyAssembly"/>
  </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

这适用于(组成)URL的任何MyPage.aspx:www.mycoolsite.com/MyProject/ [SomePathHere] /MyPage.aspx

如果我想为每个MyPage.aspx执行此操作,除了 www.mycoolsite.com/MyProject/NoHandler/MyPage.aspx

有没有办法从处理程序中排除该路径?

Nic*_*ver 6

您可以将web.config放在NoHandler定义不同处理程序的文件夹中(如果要为404样式服务器,则为NotFound等).与当前格式相同web.config,只放置要覆盖的元素,如处理程序.

如果要在该目录中使用404覆盖,这是一个示例:

<configuration>
 <system.web>
  <httpHandlers>
   <remove verb="*" path="MyPage.aspx" type="MyHandler, MyAssembly"/>
   <add verb="*" path="MyPage.aspx" type="MySpecialHandler, MyAssembly"/>
  </httpHandlers>
 </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)