2009-03-23 6 views
8

Czy można mapować wszystkie rozszerzenia plików w folderze do określonego HttpHandler (zakładając, że ich rozszerzenia plików są mapowane do pliku aspnet_isapi.dll w IIS)?Odwzorowywanie określonego folderu na HttpHandler w web.config

Mam rozszerzenie FLV odwzorowaną do ASP.NET w IIS i mieć folder o nazwie Static w mojej aplikacji sieci web z następujących plików:

  • Static/index.htm
  • Static/MyFile.flv

Plik indeksu jest podstawową stroną html z użyciem JW FLV Media Player do odtwarzania FLV.

w pliku web.config, w sekcji HttpHanders następujące prace (FLV został załadowany i gra z powodzeniem):

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

Ale tego nie robi (wideo nie mogą być ładowane):

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

Próbowałem różnych kombinacji, bez powodzenia.

Idealnie, chciałbym móc mieć wszystkie pliki FLV w folderze statycznym za pomocą PassthroughFileHandler, zamiast określać każdą nazwę pliku indywidualnie w pliku web.config.

Odpowiedz

6

Spróbuj umieścić drugą web.config wewnątrz tego folderu, z czymś takim:

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
     <httpHandlers> 
     <!-- <clear/> --> 
     <add verb="*" path="*.flv" 
      type="WebApplication3.MyHandler, WebApplication3"/> 
     </httpHandlers> 
    </system.web> 
</configuration> 
+0

Dzięki, że pracował idealnie. – Mun

0

myślę, że trzeba iść do IIS (zakładam, że używasz II 6) i skonfigurować do ASP.NET obsługiwać rozszerzenia typu wildcard. Ponieważ mimo że zmapowałeś rozszerzenie .flv, usługi IIS będą normalnie obsługiwały Static/Index.htm i nie przekazują go do ASP.NET.

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

Prawdopodobnie można skonfigurować IIS tylko dla tego folderu statycznym, ale nigdy nie próbowałem tego.

7

Oto inny sposób, który nie wymaga folderu "dummy" i nowego pliku web.config.

Dodaj to do głównego pliku web.config

<location path="static"> 
    <system.web> 
    <httpHandlers> 
     <add verb="GET,HEAD" path="*.*" 
      type="MyApp.PassthroughFileHandler, MyApp" /> 
    </httpHandlers> 
    </system.web>  
</location>