Отображение определенной папки в HttpHandler в web.config - PullRequest
8 голосов
/ 23 марта 2009

Можно ли сопоставить все расширения файлов в папке с определенным HttpHandler (при условии, что их расширения файлов сопоставлены с aspnet_isapi.dll в IIS)?

У меня есть расширение FLV, сопоставленное с ASP.NET в IIS, и в моем веб-приложении есть папка с именем Static со следующими файлами:

  • Статический / index.htm
  • Статический / MyFile.flv

Индексный файл представляет собой простую HTML-страницу, в которой для воспроизведения FLV используется JW FLV Media Player .

В Web.Config в разделе HttpHanders работает следующее (FLV загружен и успешно воспроизводится):

<add verb="*" path="MyFile.flv" type="MyApp.PassthroughFileHandler, MyApp"/>

Но это не так (видео не может быть загружено):

<add verb="*" path="Static/*" type="MyApp.PassthroughFileHandler, MyApp"/>

Я пробовал разные комбинации без особой удачи.

В идеале я хотел бы, чтобы все FLV в папке Static использовали PassthroughFileHandler, а не указывали каждое имя файла по отдельности в web.config.

Ответы [ 3 ]

7 голосов
/ 01 марта 2010

Это другой способ, который не требует наличия "фиктивной" папки и нового файла web.config.

Добавьте это на свой главный web.config

<location path="static">
  <system.web>
    <httpHandlers>
      <add verb="GET,HEAD" path="*.*" 
           type="MyApp.PassthroughFileHandler, MyApp" />
    </httpHandlers>
  </system.web>    
</location>
6 голосов
/ 23 марта 2009

Попробуйте поместить в эту папку второй файл web.config, например:

<?xml version="1.0"?>
<configuration>
    <system.web>
      <httpHandlers>
        <!-- <clear/> -->
        <add verb="*" path="*.flv"
            type="WebApplication3.MyHandler, WebApplication3"/>
      </httpHandlers>
    </system.web>
</configuration>
0 голосов
/ 23 марта 2009

Я думаю, вам нужно зайти в IIS (я полагаю, вы используете II 6) и настроить ASP.NET для обработки расширений подстановочных знаков. Потому что, хотя вы сопоставили расширение .flv, IIS будет нормально обрабатывать Static / Index.htm и не передавать его в ASP.NET.

http://professionalaspnet.com/archive/2007/07/27/Configure-IIS-for-Wildcard-Extensions-in-ASP.NET.aspx

Вероятно, вы можете настроить IIS только для этой статической папки, хотя я никогда не пробовал этого.

...