Как исключить вещи, которые соответствуют указанному пути для HttpHandler в ASP.Net? - PullRequest
2 голосов
/ 24 марта 2010

Я знаю, что если я хочу, чтобы запросы на MyPage.aspx отправлялись в класс MyHandler в сборке MyAssembly, я могу добавить это в свой файл web.config:

<configuration>
  <system.web>
    <httpHandlers>
      <add verb="*" path="MyPage.aspx" type="MyHandler, MyAssembly"/>
  </system.web>
</configuration>

Это работает для любого MyPage.aspx по (составленному) URL: www.mycoolsite.com/MyProject/[SomePathHere]/MyPage.aspx

Что, если я хочу сделать это для каждого MyPage.aspx , кроме www.mycoolsite.com/MyProject/NoHandler/MyPage.aspx

Есть ли способ исключить этот путь из обработчика?

1 Ответ

6 голосов
/ 24 марта 2010

Вы можете поместить web.config в папку NoHandler, которая определяет другой обработчик (NotFound, если вы хотите использовать сервер в стиле 404 и т. Д.) Тот же формат, что и текущий 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>
...