IIS - использование HttpHandler для всех файлов, кроме одного - PullRequest
2 голосов
/ 19 марта 2012

Я использую собственный HttpHandler в .NET для всех файлов *.html, однако хочу создать единственное исключение для файла foo.html, которое должно обрабатываться как статический файл на жестком диске.Я пробовал:

  <httpHandlers>
     <remove verb="*" path="*.html" />
     <add verb="*" path="/foo.html" type="System.Web.StaticFileHandler" />
     <add verb="*" path="*.html" validate="false" type="Imp.Handler" />
  </httpHandlers>

А также:

  <httpHandlers>
     <remove verb="*" path="*.html" />
     <add verb="*" path="*.html" validate="false" type="Imp.Handler" />
     <add verb="*" path="/foo.html" type="System.Web.StaticFileHandler" />
  </httpHandlers>

Однако, оба будут заставлять Imp.Handler по-прежнему обрабатывать foo.html запросов.Что я делаю не так?

IIS работает в классическом режиме.

1 Ответ

0 голосов
/ 19 марта 2012

может быть, этот метод может помочь вам, переместить файлы в другую папку и отключить httphandler для этой папки.

<location allowOverride="false" path="Static">
    <system.web>
      <httpHandlers>
        <remove verb="*" path="*.htm"/>
        <!--<add verb="*" path="/foo.htm" type="System.Web.StaticFileHandler" />-->
      </httpHandlers>
    </system.web>
</location>

<httpHandlers>
     <add verb="*" path="*.html" validate="false" type="Imp.Handler" />
</httpHandlers>

я пытаюсь проверить это, вопрос:

if i remove HttpHandler for the "*.html" in the location element,and add a other httphandler will doesn't worked. Например:

<location>
    <remove verb="*" path="*.htm"/>
    <add verb="*" path="foo.html" validate="false" type="Imp.Handler" />
</location>
...